From patchwork Fri Mar 4 13:34:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 51567 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 86C3E3857C75 for ; Fri, 4 Mar 2022 13:36:03 +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 43BDE3857822; Fri, 4 Mar 2022 13:34:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 43BDE3857822 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.90,155,1643702400"; d="scan'208,223";a="72566144" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 04 Mar 2022 05:34:33 -0800 IronPort-SDR: ybHmrQC1dkdMR61JxHG7G/D0ceXc253dMduy4KvWxuASm8EeH4A9nxNPL/bfwrR4nUqd3OU6IB ghDGkeL98EZEQFjDYhWKLjBaa45x8fOdrIbv/d9OCxBIZJDvyQQMA0f+zK/bF+0ZVGgl15utow iLOTUGcx9YEXL48IAhBjXB80ST+MosvjFffGhT0aePPfyfrCQg7QDDcBx+s2S/5AuRcwm6c0Rf BVHcWdL+u3U4NsaOWkhf+k2W0vY3xoeVfQTuyTsRetVdq6MNWRqigH8ig4RrTlQMiNOxqDwWCS PYs= From: Thomas Schwinge To: Subject: Add 'c-c++-common/goacc/kernels-decompose-pr104133-1.c' [PR104133] In-Reply-To: <87zgm9mxib.fsf@euler.schwinge.homeip.net> References: <20190508145157.08beb4df@squid.athome> <87iluovu47.fsf@euler.schwinge.homeip.net> <87zgm9mxib.fsf@euler.schwinge.homeip.net> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/27.1 (x86_64-pc-linux-gnu) Date: Fri, 4 Mar 2022 14:34:24 +0100 Message-ID: <87fsnxon8f.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-08.mgc.mentorg.com (139.181.222.8) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham 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 , Julian Brown , fortran@gcc.gnu.org, asolokha@gmx.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi! On 2022-03-01T17:46:20+0100, I wrote: > On 2022-01-13T10:54:16+0100, I wrote: >> --- a/gcc/omp-oacc-kernels-decompose.cc >> +++ b/gcc/omp-oacc-kernels-decompose.cc >> @@ -842,6 +843,9 @@ maybe_build_inner_data_region (location_t loc, gimple *body, >> inner_data_clauses = new_clause; >> >> prev_mapped_var = v; >> + >> + /* See . */ >> + TREE_ADDRESSABLE (v) = 1; >> } >> } > > So, that's too simple. ;-) [...] > We're after gimplification, and must not just set 'TREE_ADDRESSABLE', > because that may easily violate GIMPLE invariants, leading to ICEs later. > There are a few open PRs Pushed to master branch commit e085900fa10e28b684d656b66557d181247a1a48 "Add 'c-c++-common/goacc/kernels-decompose-pr104133-1.c' [PR104133]", see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 From e085900fa10e28b684d656b66557d181247a1a48 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 19 Jan 2022 22:28:55 +0100 Subject: [PATCH] Add 'c-c++-common/goacc/kernels-decompose-pr104133-1.c' [PR104133] ..., currently XFAILed with 'dg-ice'. PR middle-end/104133 gcc/testsuite/ * c-c++-common/goacc/kernels-decompose-pr104133-1.c: New file. --- .../goacc/kernels-decompose-pr104133-1.c | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c new file mode 100644 index 00000000000..72dde346dbf --- /dev/null +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c @@ -0,0 +1,40 @@ +/* { dg-additional-options "--param openacc-kernels=decompose" } */ + +/* { dg-additional-options "-fchecking" } + { dg-ice TODO } + { dg-prune-output {D\.[0-9]+ = arr_0\.0 \+ k;} } + { dg-prune-output {D\.[0-9]+ = arr_0\.1 \+ k;} } + { dg-prune-output {during GIMPLE pass: lower} } */ + +/* { dg-additional-options "-fopt-info-all-omp" } */ + +/* { dg-additional-options "--param=openacc-privatization=noisy" } + Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types): + { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */ + +int arr_0; + +void +foo (void) +{ +#pragma acc kernels /* { dg-line l_compute1 } */ + /* { dg-note {variable 'k' declared in block is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_compute1 } */ + /* { dg-note {variable 'arr_0\.0' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_compute1 } */ + /* { dg-note {variable 'arr_0\.1' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_compute1 } */ + { + int k; + + /* { dg-note {forwarded loop nest in OpenACC 'kernels' region to 'parloops' for analysis} {} { target *-*-* } .+1 } */ +#pragma acc loop /* { dg-line l_loop_k1 } */ + /* { dg-note {variable 'k' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_k1 } */ + for (k = 0; k < 2; k++) + arr_0 += k; + + /* { dg-note {forwarded loop nest in OpenACC 'kernels' region to 'parloops' for analysis} {} { target *-*-* } .+1 } */ +#pragma acc loop /* { dg-line l_loop_k2 } */ + /* { dg-note {variable 'k' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_k2 } */ + for (k = 0; k < 2; k++) + arr_0 += k; + /* { dg-bogus {error: invalid operands in binary operation} {} { xfail *-*-* } .-1 } */ + } +} -- 2.34.1