From patchwork Thu Jan 13 14:53:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abid Qadeer X-Patchwork-Id: 49969 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3C9E43951C6B for ; Thu, 13 Jan 2022 14:53:59 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id AD6DA39518AF; Thu, 13 Jan 2022 14:53:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AD6DA39518AF Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: BwhGpoVwNOLtwzoYJcOpK1phsXrHuzZ8Qequ10EuYrMzGUp3xNlfAJdGGuRcUOK6TAaVacSgF4 bCCp/+xxm57FXcC19m99NO3EsldtLCi/FfBYf1mdGI2XesHG7JJffKam+xi0taL3Burz4lVAmT gUeQYqw7f950ugob+7MLbxV8X5smsNre13jOa2IjhhiPQgSzksiN85E4ZfEfNurM98I7NVgKCH phJ8nQWdihETUJj65FMRnsoCGG4h+RvAqoXANDBa8WU61pHpPHZEqtZocz7d4lItuWzPNF+td6 W3TeuQhKcrj+0V6MOPlZsTDA X-IronPort-AV: E=Sophos;i="5.88,286,1635235200"; d="scan'208";a="70595072" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 13 Jan 2022 06:53:31 -0800 IronPort-SDR: o4qnYzuSIhow5+LcnHVfb2Nxqf+E02bDvpdTj7GPQOvn0+jl3rXJDItDWec/Qxdg/0Z1+QDu8y gv8tca+rRyCppuTBBU1c0WpfeWCCkPuehB9uYpVkYgQQNHJ6mFzy72nefObToGRmLdoOAadfjn ux8IgNkiF+QilQrLW7WC9nUjcOr2dG6HdMrCBt9zu7vtRpyj8TChZ5gj6PouiuLjRoczyZGQt+ mvlSmRoOZKd5EaEDFqBopYSQrRQgT/Sg8bhMmzzcW6g9kXzJxRRt3InQyu4cHwN5DmLS5n5/OE TJk= From: Hafiz Abid Qadeer To: , Subject: [PATCH 0/5] [gfortran] Support for allocate directive (OpenMP 5.0) Date: Thu, 13 Jan 2022 14:53:15 +0000 Message-ID: <20220113145320.3153087-1-abidh@codesourcery.com> X-Mailer: git-send-email 2.25.1 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-03.mgc.mentorg.com (139.181.222.3) X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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, tobias@codesourcery.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch series add initial support for allocate directive in the gfortran. Although every allocate directive is parsed, only those which are associated with an allocate statement are translated. The lowering consists of replacing implicitly generated malloc/free call from the allocate statement to GOMP_alloc and GOMP_free calls. Hafiz Abid Qadeer (5): [gfortran] Add parsing support for allocate directive (OpenMP 5.0). [gfortran] Translate allocate directive (OpenMP 5.0). [gfortran] Handle cleanup of omp allocated variables (OpenMP 5.0). Gimplify allocate directive (OpenMP 5.0). Lower allocate directive (OpenMP 5.0). gcc/doc/gimple.texi | 38 ++- gcc/fortran/dump-parse-tree.c | 3 + gcc/fortran/gfortran.h | 5 +- gcc/fortran/match.h | 1 + gcc/fortran/openmp.c | 229 +++++++++++++++++- gcc/fortran/parse.c | 10 +- gcc/fortran/resolve.c | 1 + gcc/fortran/st.c | 1 + gcc/fortran/trans-decl.c | 20 ++ gcc/fortran/trans-openmp.c | 50 ++++ gcc/fortran/trans.c | 1 + gcc/gimple-pretty-print.c | 37 +++ gcc/gimple.c | 10 + gcc/gimple.def | 6 + gcc/gimple.h | 60 ++++- gcc/gimplify.c | 19 ++ gcc/gsstruct.def | 1 + gcc/omp-low.c | 125 ++++++++++ gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 | 112 +++++++++ gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 | 73 ++++++ gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 | 84 +++++++ gcc/tree-core.h | 9 + gcc/tree-pretty-print.c | 23 ++ gcc/tree.c | 1 + gcc/tree.def | 4 + gcc/tree.h | 15 ++ .../testsuite/libgomp.fortran/allocate-1.c | 7 + .../testsuite/libgomp.fortran/allocate-2.f90 | 49 ++++ 28 files changed, 986 insertions(+), 8 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/allocate-1.c create mode 100644 libgomp/testsuite/libgomp.fortran/allocate-2.f90