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 B565F3854814; Fri, 14 May 2021 21:26:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B565F3854814 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: JIrV+y37iykM7Ea2ZXRIdATn67O/3kihllImVtO/gcaUnSBj+nUQP0bVdlr3OdENpLK/kykLu9 KdSV16EGlf37Wt1QviEdLWRK4NekuMdpgNMUFrXANWPb1gYA3nALJT6DC7RA60/TV+wPe5nez0 qlypIaoxL8L949Fng9wPNkP5heiwYeNk34zGv3Gtc7XD2060mxLz/IkxY+vQHuKRrDWoDKqqiX WMjBMcxTzY/Y3COc+WfKdiKH9Qs1wbFgPyV5efI1NJH82n94PgROP8UA0i5H9HnHhsp+wYbYWH AOY= X-IronPort-AV: E=Sophos;i="5.82,300,1613462400"; d="scan'208";a="61232128" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 14 May 2021 13:26:44 -0800 IronPort-SDR: Q26gMykStLlnKR1kKJ/D1+Rkgamm5vBNAlpFvqv2ulV2Mhp9N1b5xAS0dZD1S3+2enXZf17xt3 LsvwfAfFQeYy9XO5S3kVvnSeqCkOu4vEmUZ0ejCvYfWeP08ihodw0Zqo5KRRRyYTvAoYaTQAaM JYgvkkEUlcIjM0Gs1tXYqYHvhRINJTJNGpah8AhGuSFv310CaWVwEvXZwiUXqiuuzxLAgw+2iZ S2Wp4g3S78c1/bQnZUuwuT3Szco6FDclmIOVBIsEjJ9p846ZZowZgymOsgxrPJGbap+NQA1G1I t7c= From: Julian Brown To: CC: , Jakub Jelinek , Tobias Burnus , Thomas Schwinge , Chung-Lin Tang Subject: [PATCH 0/5] OpenACC/OpenMP: Rework struct component handling Date: Fri, 14 May 2021 14:26:22 -0700 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-06.mgc.mentorg.com (139.181.222.6) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) X-Spam-Status: No, score=-6.0 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: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2021 21:26:47 -0000 Hi, This patch series reworks how indirect struct (or class or derived-type) component mappings are lowered for OpenMP and OpenACC. I previously posted this against the og10 branch: https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570058.html This version of the series, rebased to trunk, incorporates parts of some of Chung-Lin's patches from the og10 branch. The new "member-array-acc.C" and "member-array-omp.C" tests also depend on a couple of his other patches from the og10 branch that have not landed upstream yet: "Target mapping C++ members inside member functions" "Fix regression of array members in OpenMP map clauses." The tests in question have been XFAILed for now. Tested with offloading to NVPTX (as a series). Further comments on individual patches. Thanks, Julian Julian Brown (5): Unify ARRAY_REF/INDIRECT_REF stripping code in extract_base_bit_offset Refactor struct lowering for OpenMP/OpenACC in gimplify.c Rewrite GOMP_MAP_ATTACH_DETACH mappings for OpenMP also Rework indirect struct handling for OpenACC/OpenMP in gimplify.c Mapping of components of references to pointers to structs for OpenMP/OpenACC gcc/cp/semantics.c | 7 +- gcc/fortran/trans-openmp.c | 20 +- gcc/gimplify.c | 1042 +++++++++++------ gcc/omp-low.c | 16 +- gcc/testsuite/g++.dg/goacc/member-array-acc.C | 14 + gcc/testsuite/g++.dg/gomp/member-array-omp.C | 14 + .../testsuite/libgomp.oacc-c++/deep-copy-17.C | 101 ++ .../libgomp.oacc-c-c++-common/deep-copy-15.c | 71 ++ .../libgomp.oacc-c-c++-common/deep-copy-16.c | 231 ++++ 9 files changed, 1111 insertions(+), 405 deletions(-) create mode 100644 gcc/testsuite/g++.dg/goacc/member-array-acc.C create mode 100644 gcc/testsuite/g++.dg/gomp/member-array-omp.C create mode 100644 libgomp/testsuite/libgomp.oacc-c++/deep-copy-17.C create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-15.c create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c -- 2.29.2