From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id D134B3857C58 for ; Tue, 30 Nov 2021 12:01:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D134B3857C58 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: UPkizh4v7rqJ965nCjKepYqNxh5o4wCU+kfqmSDyQdDvQLimyrYeyTLc7KoNwPu3mKBhJJMiTs p3C2JshAdnNUIyBBttAXWuF4LMZFgLnPw6op6ytcHH+voBPunNW4vMCotJiTkE1BrZ+Qf9vIlt M+Ud2dIXlE//0gJ3WwpGTbkKzIr7Nb3Zz/mrJoK9P91pZdgTYpJwFSgqi0byp+Nf0VaGI5367S fT8O7P3rwVU7IJKKUFV2xWItguqqdz0znnb1jsnJGpWQEBXz6hJb6PasGcVhZmO+SIwPgUISCB DynLjWqOeyMwjVO5P0v+s5GM X-IronPort-AV: E=Sophos;i="5.87,275,1631606400"; d="scan'208,223";a="69078086" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa4.mentor.iphmx.com with ESMTP; 30 Nov 2021 04:01:37 -0800 IronPort-SDR: u9LpO2I91pAyYMIuj7NUFRrlDgyqv9SqD7ocFxoaDchQE4ln7BV0LFEZzamf19ipn36qqSup2o Yv0GUpaVY2QfbG5GSIMegUQSzeSsLY0irR6P/g0ApDaknVto3PJZUildPCHN9bBpXVgshuYHVx jARMt9I+FlxKUZV0PjOXIYJaQrzOkyyYc3R9+LB4o4PnGQ2Se8OR7rpD0rCvTiKAZp9ELdio8E wblSHWVTqmdDlqUFHe+8Y9JWCG38Dyg4AH5KznO+9ZdRqFWb02KFIhF5UD1SCcu9I2fAW91yP+ RxM= From: Thomas Schwinge To: CC: Kwok Cheung Yeung Subject: Re: [PATCH] [og10] Fix goacc/routine-4-extern.c test In-Reply-To: References: <91521931-373f-a3a6-7a3f-1752f08858a1@codesourcery.com> <07709f66-bf60-c95f-bee3-2d24adc492aa@codesourcery.com> <30ecb8b6-b53e-4119-fb1c-e17b0cec5e09@codesourcery.com> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/27.1 (x86_64-pc-linux-gnu) Date: Tue, 30 Nov 2021 13:01:27 +0100 Message-ID: <87pmqhx36w.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.1 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.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: , X-List-Received-Date: Tue, 30 Nov 2021 12:01:41 -0000 --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi! On 2020-07-28T10:44:29+0200, I wrote: > On 2020-07-26T14:05:32+0100, Kwok Cheung Yeung wro= te: >> On 24/07/2020 8:27 am, Thomas Schwinge wrote: >>> [proposed patch] however completely defeats what we're intending to tes= t here, which >>> is to "Test invalid intra-routine parallelism". The same problem has >>> been introduced in og10 commit 6a0b5806b24bfdefe0b0f3ccbcc51299e5195dca >>> "Various OpenACC reduction enhancements - test cases" for >>> 'gcc/testsuite/c-c++-common/goacc/routine-4.c', which throughout change= d: >>> >>> -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed= by containing routine" } >>> +#pragma acc loop seq reduction (+:red) >>> >>> Please revert that, and instead replace 'reduction (+:red)' with a >>> different "dummy loop operation" (just an empty loop body?), and in the >>> commit log state that this should've been included in the respective og= 10 >>> commit adding the "gang reduction on an orphan loop" checking. >> >> I have reverted all the previous changes and replaced the orphan loop ga= ng >> reductions with empty loops as suggested, and checked that the tests now= pass. >> >> Is this version okay for OG10? > > Yes, thanks. ... which I've now adapted and pushed to master branch in commit a83a07557085f6da83c63e86c1cd2e719a39b8b2 "Fix c-c++-common/goacc/routine-4.c and c-c++-common/goacc/routine-4-extern.c testcases", see attached. Gr=C3=BC=C3=9Fe Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename="0001-Fix-c-c-common-goacc-routine-4.c-and-c-c-common-goac.patch" >From a83a07557085f6da83c63e86c1cd2e719a39b8b2 Mon Sep 17 00:00:00 2001 From: Kwok Cheung Yeung Date: Tue, 28 Jul 2020 05:41:14 -0700 Subject: [PATCH] Fix c-c++-common/goacc/routine-4.c and c-c++-common/goacc/routine-4-extern.c testcases ... in preparation for checks that we're introducing for OpenACC gang reductions on orphan loops. gcc/testsuite/ * c-c++-common/goacc/routine-4.c (seq, vector, worker, gang): Remove loop reductions. * c-c++-common/goacc/routine-4-extern.c (seq, vector, worker, gang): Likewise. Co-Authored-By: Thomas Schwinge --- .../c-c++-common/goacc/routine-4-extern.c | 72 +++++++++---------- gcc/testsuite/c-c++-common/goacc/routine-4.c | 72 +++++++++---------- 2 files changed, 64 insertions(+), 80 deletions(-) diff --git a/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c b/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c index ec21db1c319..ec4475818ad 100644 --- a/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c +++ b/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c @@ -26,23 +26,21 @@ void seq (void) extern_vector (); /* { dg-error "routine call uses" } */ extern_seq (); - int red; - -#pragma acc loop reduction (+:red) // { dg-warning "insufficient partitioning" } +#pragma acc loop // { dg-warning "insufficient partitioning" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop worker // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop vector // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; } void vector (void) @@ -52,23 +50,21 @@ void vector (void) extern_vector (); extern_seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop worker // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } void worker (void) @@ -78,23 +74,21 @@ void worker (void) extern_vector (); extern_seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) +#pragma acc loop worker for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } void gang (void) @@ -104,21 +98,19 @@ void gang (void) extern_vector (); extern_seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) +#pragma acc loop gang for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) +#pragma acc loop worker for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } diff --git a/gcc/testsuite/c-c++-common/goacc/routine-4.c b/gcc/testsuite/c-c++-common/goacc/routine-4.c index 5f2194c3f62..870ff645777 100644 --- a/gcc/testsuite/c-c++-common/goacc/routine-4.c +++ b/gcc/testsuite/c-c++-common/goacc/routine-4.c @@ -17,23 +17,21 @@ void seq (void) vector (); /* { dg-error "routine call uses" } */ seq (); - int red; - -#pragma acc loop reduction (+:red) // { dg-warning "insufficient partitioning" } +#pragma acc loop // { dg-warning "insufficient partitioning" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop worker // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop vector // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; } void vector (void) /* { dg-message "declared here" "1" } */ @@ -43,23 +41,21 @@ void vector (void) /* { dg-message "declared here" "1" } */ vector (); seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop worker // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } void worker (void) /* { dg-message "declared here" "2" } */ @@ -69,23 +65,21 @@ void worker (void) /* { dg-message "declared here" "2" } */ vector (); seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } +#pragma acc loop gang // { dg-error "disallowed by containing routine" } for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) +#pragma acc loop worker for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } void gang (void) /* { dg-message "declared here" "3" } */ @@ -95,21 +89,19 @@ void gang (void) /* { dg-message "declared here" "3" } */ vector (); seq (); - int red; - -#pragma acc loop reduction (+:red) +#pragma acc loop for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop gang reduction (+:red) +#pragma acc loop gang for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop worker reduction (+:red) +#pragma acc loop worker for (int i = 0; i < 10; i++) - red ++; + ; -#pragma acc loop vector reduction (+:red) +#pragma acc loop vector for (int i = 0; i < 10; i++) - red ++; + ; } -- 2.33.0 --=-=-=--