From patchwork Mon Nov 15 11:18:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julian Brown X-Patchwork-Id: 47659 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 8430A385802A for ; Mon, 15 Nov 2021 11:18:53 +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 39F973858D39 for ; Mon, 15 Nov 2021 11:18:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 39F973858D39 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: Flxhvd8FN5cQOr26IZv/QwI+B2IKpbkisw/EbsHSAdV5um4gbXpHSCeWCcxwvHcYQmSZlgA8zk kLq+ym3+tAM8Fr2spC+yOP8HAIm0f5bNGAOXgdreWzI1GZXIDKIQ2pVs5LjYTFMh/fibRbjpDr fedcd2vruNBU6cGdGzMAlCU4FbdErdjMWU65bsRpIjcQGHje2sGTfFIx2sMJwiC9dUIrWb80fT 7cLWLQAJCy/5vSfIGouzb3JDnNfQAaYX9P6xnIDOXW/JTTn/5ZNOmCN1LehG56jEPInPwPzFQw m6GmNUUdNwPDETNAcummrk4G X-IronPort-AV: E=Sophos;i="5.87,236,1631606400"; d="scan'208";a="68329810" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 15 Nov 2021 03:18:36 -0800 IronPort-SDR: Bqa8ShpCScgSCI3vHv9XctGCcP2axZBqze4l5q1RqjYlf+xpDuoEudW9yEUqECHXR3Va/pWpfK 9ODBKv8z4OTi2XpaeSKaqpU6n0o7lfbiejH974KFAwhm5UrbDG/R1PV/Gd4PPVXZ7CyVlCFbj1 VwV9LJhkzp7lz91YZlIZlng+v1PcxiH2manBffO32lxTSjY5oS7FxSCz4xDkZBFXntCWn6M5R0 Y8n2G1sX2GItl1Ia68Z8B8gy076epQ2GHHBjT311zb1c6mYJNw4rAw2PyJPFb7sFIaijnBi5hP zdc= From: Julian Brown To: Subject: [PATCH 0/4] OpenMP: Parsing of lvalues for "map" clauses for C andjC++ Date: Mon, 15 Nov 2021 03:18:22 -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-10.mgc.mentorg.com (139.181.222.10) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) X-Spam-Status: No, score=-5.8 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.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 Jelinek Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch series builds on top of the previously-posted series: "Topological sort for OpenMP 5.0 base pointers" https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577211.html and: "OpenMP: Deep struct dereferences" https://gcc.gnu.org/pipermail/gcc-patches/2021-October/580721.html To add support for parsing general lvalues in "map" clauses in both C and C++. A new "address inspector" class is introduced in order to unify address analyses from several places in the C/C++ front-ends which had some level of duplication. Tested with offloading to NVPTX, and bootstrapped. OK? Julian Brown (4): Add debug_omp_expr OpenMP: Add inspector class to unify mapped address analysis OpenMP: lvalue parsing for map clauses (C++) OpenMP: lvalue parsing for map clauses (C) gcc/c-family/c-common.h | 44 +++ gcc/c-family/c-omp.c | 172 ++++++++++- gcc/c/c-parser.c | 150 ++++++++-- gcc/c/c-tree.h | 1 + gcc/c/c-typeck.c | 232 +++++---------- gcc/cp/error.c | 9 + gcc/cp/parser.c | 141 ++++++++- gcc/cp/parser.h | 3 + gcc/cp/semantics.c | 278 +++++++----------- gcc/gimplify.c | 37 ++- gcc/testsuite/c-c++-common/gomp/map-1.c | 3 +- gcc/testsuite/c-c++-common/gomp/map-6.c | 6 +- gcc/testsuite/g++.dg/gomp/pr67522.C | 2 +- .../g++.dg/gomp/unmappable-component-1.C | 21 ++ gcc/tree-pretty-print.c | 45 +++ gcc/tree-pretty-print.h | 1 + gcc/tree.def | 3 + libgomp/testsuite/libgomp.c++/ind-base-1.C | 162 ++++++++++ libgomp/testsuite/libgomp.c++/ind-base-2.C | 49 +++ libgomp/testsuite/libgomp.c++/struct-ref-1.C | 97 ++++++ 20 files changed, 1088 insertions(+), 368 deletions(-) create mode 100644 gcc/testsuite/g++.dg/gomp/unmappable-component-1.C create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-1.C create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-2.C create mode 100644 libgomp/testsuite/libgomp.c++/struct-ref-1.C