From patchwork Fri Feb 26 12:34:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julian Brown X-Patchwork-Id: 1444916 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dn8Hy6pWhz9sCD for ; Fri, 26 Feb 2021 23:35:09 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CD3FD3950C81; Fri, 26 Feb 2021 12:35:06 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 624103842424 for ; Fri, 26 Feb 2021 12:35:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 624103842424 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: 7SU09bqDRU3M6x8QsRQakOVCqUUm7E0HQzmzlGH9/m5yBQq365Duw0FvjrDD0XGRsG9fMurtxo eLwJM1OVCJnmvypcKDwrzsSWTFiBxBhJYeUrNdXrFM+UrhDKnBHAitD92bLEo9k721K6MSyHat PDibJbcw9fNELW7kY8ox8p3wLLxZ4TzxWGD7vvEm24sHcK7dQkmN1fVctbDI+nWcCxYXGeu11F fFimztSsnxC4X1IEc7MB1Tqhoy+TSLxLmav/sRiLDrd7Q2rsbTRWnBHyXDw0h+K7IexenVlVlK QlU= X-IronPort-AV: E=Sophos;i="5.81,208,1610438400"; d="scan'208";a="58524559" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 26 Feb 2021 04:35:03 -0800 IronPort-SDR: 1i2KvyrAmsTSv5KjKcrsRF/w9dfVCFkgp4CMconQzGTI8VE90UljSACfsAw0yTEenEbBYfqdSd a+2GXmH2Z4J+aniRSu//fedgRfaMHx4WQLpnSCRjDC/Mjk//UNNTjmqCI7Nt0SuqBG8wUpt+Ci 7fhd5Dz4y4RrXUvOxwR2U02FV4pnpouZ7NTGHzBADYuQzUR9el3MxbRofr9SHv2wPrN5HZkJ0a tLKKOg2gPV/UFnpBHPjoSYfcZXfBVgPb2l72KvZH2ON7i01IS3q3m6kJpB+wAZ3tXcmz9iv/Hl bLg= From: Julian Brown To: Subject: [PATCH 0/3] openacc: Gang-private variables in shared memory Date: Fri, 26 Feb 2021 04:34:49 -0800 Message-ID: X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) 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, RCVD_IN_DNSWL_NONE, 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: , Cc: jakub@redhat.com, Thomas Schwinge Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" This series contains a rebased/updated/bug-fixed version of the patch to place gang-local variables in GPU shared memory, last posted here: https://gcc.gnu.org/pipermail/gcc-patches/2019-November/534551.html Further commentary on individual patches. I am posting this for review now, but I would not expect to commit it until stage 1. Thanks, Julian Julian Brown (3): openacc: Add support for gang local storage allocation in shared memory amdgcn: AMD GCN parts for OpenACC private variables patch nvptx: NVPTX parts for OpenACC private variables patch gcc/config/gcn/gcn-protos.h | 2 +- gcc/config/gcn/gcn-tree.c | 9 +- gcc/config/gcn/gcn.c | 4 +- gcc/config/nvptx/nvptx.c | 78 ++++++ gcc/doc/tm.texi | 26 ++ gcc/doc/tm.texi.in | 4 + gcc/expr.c | 13 +- gcc/internal-fn.c | 2 + gcc/internal-fn.h | 3 +- gcc/omp-low.c | 122 +++++++++- gcc/omp-offload.c | 225 +++++++++++++++++- gcc/target.def | 30 +++ .../gang-private-1.c | 38 +++ .../libgomp.oacc-c-c++-common/loop-gwv-2.c | 95 ++++++++ .../gangprivate-attrib-1.f90 | 25 ++ .../gangprivate-attrib-2.f90 | 25 ++ 16 files changed, 687 insertions(+), 14 deletions(-) create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/gang-private-1.c create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/gangprivate-attrib-1.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/gangprivate-attrib-2.f90