From patchwork Wed Aug 19 20:00:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kwok Cheung Yeung X-Patchwork-Id: 1348001 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=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (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 4BWzCn3hwkz9sRN for ; Thu, 20 Aug 2020 06:00:19 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 38E9F3842439; Wed, 19 Aug 2020 20:00:16 +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 1D64F3858D35 for ; Wed, 19 Aug 2020 20:00:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1D64F3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Kwok_Yeung@mentor.com IronPort-SDR: oi3YIe2Z5bB+esLyh58vmAJl7kJPkUntrG+f04kpxl4PdtGur4ae9QQOquqyC6K2+PR4RSFt1W /3Fby4/SFaTnZhXkvKvz5kRqHBy2Tpvrq9HQHg6Iswm/9gNSP3KFyTu5A5JrFqVVXjHvO3UgTP ZmSKl6NyJJ87YVI/lSlekOIk2Ux7QNWTNzrRSe8+gsSqcoH2M+ArZGrsTzzjL6jOOj2aW5GYkH oUewvxWAU0AWjiscEqjjGrLE+8X9+av20DiRkdKjRjws7L9bNY2MH1XFAoMpsD23SvQwVK9Kty FYk= X-IronPort-AV: E=Sophos;i="5.76,332,1592899200"; d="scan'208,223";a="52097130" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 19 Aug 2020 12:00:12 -0800 IronPort-SDR: Oy0DpNav+6ZCMuAYNfS6mYV4/9fW3fJ447mLpwQmCC/m7TvBXUPeQnezEkWf8ysHVhXKYf1YtL y/fvhfT8Rji4Q+5De5AMJM6dA1nz89HzAGsHB/qmYnHCc3jDbDbSXLtrStQzExzJY2UFPmBm+k tg3ITgCDF/MEps0sqtdqhXQP08ujJ87MRzk0QzjDocO9bguAwfv1XqkaelwZc4Iqd6qeHq5cnx qe2+OdSTBy9IhvGbS/BEt4U/arn9lUttQEd4D4lCjAVARIwinCOpqT50vyhWR1q9uXeC+LrCn+ h7k= From: Kwok Cheung Yeung Subject: [committed] [OG10] Re: Re: [Patch] [OpenMP, Fortran] Add structure/derived-type element mapping To: , GCC Patches , Tobias Burnus References: <87sgdb63je.fsf@euler.schwinge.homeip.net> Message-ID: Date: Wed, 19 Aug 2020 21:00:01 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.1.1 MIME-Version: 1.0 In-Reply-To: <87sgdb63je.fsf@euler.schwinge.homeip.net> Content-Language: en-GB X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-08.mgc.mentorg.com (139.181.222.8) To SVR-IES-MBX-03.mgc.mentorg.com (139.181.222.3) X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham 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: , Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" > If I got my tracking right, the og10 commit > 4677091db1aa9d2a52e4839812bd73f47cc5e421 "[OpenMP, Fortran] Add > structure/derived-type element mapping" regresses: > > [-PASS:-]{+FAIL:+} gfortran.dg/goacc/pr70828.f90 -O scan-tree-dump-times gimple "omp target oacc_data map\\(tofrom:MEM\\[\\(c_char \\*\\)_[0-9]+\\] \\[len: _[0-9]+\\]\\) map\\(alloc:data \\[pointer assign, b > ias: _[0-9]+\\]\\)" 1 > [-PASS:-]{+FAIL:+} gfortran.dg/goacc/pr70828.f90 -O scan-tree-dump-times gimple "omp target oacc_parallel map\\(force_present:MEM\\[\\(c_char \\*\\)D\\.[0-9]+\\] \\[len: D\\.[0-9]+\\]\\) map\\(alloc:data \\[ > pointer assign, bias: D\\.[0-9]+\\]\\)" 1 > PASS: gfortran.dg/goacc/pr70828.f90 -O (test for excess errors) The mapping in the Gimple dump has changed from: _6 = parm.0.data; ... #pragma omp target oacc_data map(tofrom:MEM[(c_char *)_6] [len: _5]) map(alloc:data [pointer assign, bias: _10]) to: _6 = parm.0.data; _7 = (integer(kind=8)) _6 data.2_8 = (integer(kind=8)) &data; _9 = _7 - data.2_8; _10 = _9 / 4; ... #pragma omp target oacc_data map(tofrom:data[_10] [len: _5]) map(alloc:data [pointer assign, bias: _14]) i.e. It is now mapping the array data starting from the offset that parm.0.data is at relative to data, rather than from the memory at parm.0.data directly. This is due to the change in array handling in this part of the patch: if (TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE) - ptr2 = build_fold_addr_expr (decl); + { + tree offset; + ptr2 = build_fold_addr_expr (decl); + offset = fold_build2 (MINUS_EXPR, ptrdiff_type_node, ptr, + fold_convert (ptrdiff_type_node, ptr2)); + offset = build2 (TRUNC_DIV_EXPR, ptrdiff_type_node, + offset, fold_convert (ptrdiff_type_node, elemsz)); + offset = build4_loc (input_location, ARRAY_REF, + TREE_TYPE (TREE_TYPE (decl)), + decl, offset, NULL_TREE, NULL_TREE); + OMP_CLAUSE_DECL (node) = offset; + } As this does not cause a change in program behaviour, I believe it is enough to just change the expected output in the testcase. I have committed the attached patch to the OG10 branch as 'obvious'. Kwok From 0b999612a0205da31e3948f67cc754e9208e85fb Mon Sep 17 00:00:00 2001 From: Kwok Cheung Yeung Date: Wed, 19 Aug 2020 12:50:42 -0700 Subject: [PATCH] Fix gfortran.dg/goacc/pr70828.f90 testcase Array mapping was changed by the patch '[OpenMP, Fortran] Add structure/derived-type element mapping'. 2020-08-19 Kwok Cheung Yeung gcc/testsuite/ * gfortran.dg/goacc/pr70828.f90: Update expected output in Gimple dump. --- gcc/testsuite/ChangeLog.omp | 5 +++++ gcc/testsuite/gfortran.dg/goacc/pr70828.f90 | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp index 19395cf..ffc8f63 100644 --- a/gcc/testsuite/ChangeLog.omp +++ b/gcc/testsuite/ChangeLog.omp @@ -1,3 +1,8 @@ +2020-08-19 Kwok Cheung Yeung + + * gfortran.dg/goacc/pr70828.f90: Update expected output in Gimple + dump. + 2020-08-18 Kwok Cheung Yeung Backport from mainline diff --git a/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 b/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 index 2e58120..fcfe086 100644 --- a/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 +++ b/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 @@ -18,5 +18,5 @@ program test !$acc end data end program test -! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(tofrom:MEM\\\[\\(c_char \\*\\)\_\[0-9\]+\\\] \\\[len: _\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: _\[0-9\]+\\\]\\)" 1 "gimple" } } -! { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:MEM\\\[\\(c_char \\*\\)D\\.\[0-9\]+\\\] \\\[len: D\\.\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: D\\.\[0-9\]+\\\]\\)" 1 "gimple" } } +! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(tofrom:data\\\[\_\[0-9\]+\\\] \\\[len: _\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: _\[0-9\]+\\\]\\)" 1 "gimple" } } +! { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:data\\\[D\\.\[0-9\]+\\\] \\\[len: D\\.\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: D\\.\[0-9\]+\\\]\\)" 1 "gimple" } }