From patchwork Fri Jan 25 14:18:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Gerg=C3=B6_Barany?= X-Patchwork-Id: 1031118 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-494737-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="UUf6nddd"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43mLkG3Xtmz9s55 for ; Sat, 26 Jan 2019 01:19:16 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to:cc :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=c7FYj0Nb6W74vb5rfE1w7zoJjQKYrhdil32uscJnmCmZdOob0u ypU6dLmiBb2qHDhN/Jm0veHEtWX66K/EgqXtyGJgBMNtaRRnBnJkke58+f5/CZMf mLsDl6d1q8C+FvLnPhIqIztSxp25YM0PIx3wwpLfXo0aI6AI4NSREjEUY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to:cc :from:subject:message-id:date:mime-version:content-type; s= default; bh=herDMedveRU5rZ6+Txbqa3eM0TE=; b=UUf6ndddwpFpCY4Viaqz witZ/f4WhqTCkBu0CPk85ZzmFtOYT2fYAx7Wk6x9Kn+WEBxJV2QXNzHy6x+2mwC9 wtuSCfQAglp1OzEB4YBbUp5HmLvBHEpAncPC1DrkT8kj/OZSbsul8KTzcKjma0tv k2/lDGJ6BJBuYgt7CX1j6iw= Received: (qmail 47245 invoked by alias); 25 Jan 2019 14:19:09 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 47228 invoked by uid 89); 25 Jan 2019 14:19:07 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=gang X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 25 Jan 2019 14:19:05 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-MBX-03.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1gn2Jz-0001IA-Bb from Gergo_Barany@mentor.com for gcc-patches@gcc.gnu.org; Fri, 25 Jan 2019 06:19:03 -0800 Received: from [172.30.72.168] (137.202.0.90) by SVR-IES-MBX-03.mgc.mentorg.com (139.181.222.3) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Fri, 25 Jan 2019 14:18:59 +0000 To: CC: Thomas Schwinge From: =?utf-8?q?Gerg=C3=B6_Barany?= Subject: [PATCH, OpenACC] Remove spurious OpenACC error on combining "auto" with gang/worker/vector Message-ID: <996e8fc7-c4c3-6bd8-efdc-84a482975dc7@codesourcery.com> Date: Fri, 25 Jan 2019 15:18:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 X-IsSubscribed: yes On OpenACC loop constructs, it is OK according to the OpenACC spec to have both the "auto" clause and one or more of the "gang", "worker", or "vector" clauses. GCC emits errors for this combination; this patch eliminates that error. OK for openacc-gcc-8-branch? Thanks, Gergö gcc/ * omp-low.c (check_oacc_kernel_gwv): Remove spurious error message. * omp-offload.c (oacc_loop_fixed_partitions): Likewise. gcc/testsuite/ * c-c++-common/goacc/combined-directives-3.c: Adjust test. * c-c++-common/goacc/loop-2-kernels.c: Likewise. * c-c++-common/goacc/loop-2-parallel.c: Likewise. From d8e7f1826d423de05e11afcb6e422ccaced0f6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C3=B6=20Barany?= Date: Wed, 23 Jan 2019 03:10:07 -0800 Subject: [PATCH] Remove spurious OpenACC error on combining "auto" with gang/worker/vector gcc/ * omp-low.c (check_oacc_kernel_gwv): Remove spurious error message. * omp-offload.c (oacc_loop_fixed_partitions): Likewise. gcc/testsuite/ * c-c++-common/goacc/combined-directives-3.c: Adjust test. * c-c++-common/goacc/loop-2-kernels.c: Likewise. * c-c++-common/goacc/loop-2-parallel.c: Likewise. --- gcc/ChangeLog.openacc | 5 +++++ gcc/omp-low.c | 3 --- gcc/omp-offload.c | 7 ++----- gcc/testsuite/ChangeLog.openacc | 6 ++++++ gcc/testsuite/c-c++-common/goacc/combined-directives-3.c | 4 ++-- gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c | 12 ++++++------ gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c | 12 ++++++------ 7 files changed, 27 insertions(+), 22 deletions(-) diff --git a/gcc/ChangeLog.openacc b/gcc/ChangeLog.openacc index 932fb37..f3c741c 100644 --- a/gcc/ChangeLog.openacc +++ b/gcc/ChangeLog.openacc @@ -1,5 +1,10 @@ 2019-01-24 Gergö Barany + * omp-low.c (check_oacc_kernel_gwv): Remove spurious error message. + * omp-offload.c (oacc_loop_fixed_partitions): Likewise. + +2019-01-24 Gergö Barany + * gimplify.c (oacc_default_clause): Refactor and unify computation of default mapping clauses. diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 72b6548..f48002e 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -2397,9 +2397,6 @@ check_oacc_kernel_gwv (gomp_for *stmt, omp_context *ctx) if (has_seq && (this_mask || has_auto)) error_at (gimple_location (stmt), "% overrides other" " OpenACC loop specifiers"); - else if (has_auto && this_mask) - error_at (gimple_location (stmt), "% conflicts with other" - " OpenACC loop specifiers"); if (this_mask & outer_mask) error_at (gimple_location (stmt), "inner loop uses same" diff --git a/gcc/omp-offload.c b/gcc/omp-offload.c index d428c6f..57a7a06 100644 --- a/gcc/omp-offload.c +++ b/gcc/omp-offload.c @@ -1211,14 +1211,11 @@ oacc_loop_fixed_partitions (oacc_loop *loop, unsigned outer_mask) bool maybe_auto = !seq_par && this_mask == (tiling ? this_mask & -this_mask : 0); - if ((this_mask != 0) + auto_par + seq_par > 1) + if (seq_par && (this_mask != 0 || auto_par)) { if (noisy) error_at (loop->loc, - seq_par - ? G_("% overrides other OpenACC loop specifiers") - : G_("% conflicts with other OpenACC loop " - "specifiers")); + G_("% overrides other OpenACC loop specifiers")); maybe_auto = false; loop->flags &= ~OLF_AUTO; if (seq_par) diff --git a/gcc/testsuite/ChangeLog.openacc b/gcc/testsuite/ChangeLog.openacc index 3bdce2e..3850d97 100644 --- a/gcc/testsuite/ChangeLog.openacc +++ b/gcc/testsuite/ChangeLog.openacc @@ -1,3 +1,9 @@ +2019-01-24 Gergö Barany + + * c-c++-common/goacc/combined-directives-3.c: Adjust test. + * c-c++-common/goacc/loop-2-kernels.c: Likewise. + * c-c++-common/goacc/loop-2-parallel.c: Likewise. + 2019-01-09 Julian Brown * c-c++-common/cpp/openacc-define-3.c: Update expected value for diff --git a/gcc/testsuite/c-c++-common/goacc/combined-directives-3.c b/gcc/testsuite/c-c++-common/goacc/combined-directives-3.c index 77d4182..5aa84dc 100644 --- a/gcc/testsuite/c-c++-common/goacc/combined-directives-3.c +++ b/gcc/testsuite/c-c++-common/goacc/combined-directives-3.c @@ -12,9 +12,9 @@ main () for (y = 0; y < 10; y++) ; -#pragma acc parallel loop gang auto /* { dg-error "'auto' conflicts with other OpenACC loop specifiers" } */ +#pragma acc parallel loop gang seq /* { dg-error "'seq' overrides other OpenACC loop specifiers" } */ for (x = 0; x < 10; x++) -#pragma acc loop worker auto /* { dg-error "'auto' conflicts with other OpenACC loop specifiers" } */ +#pragma acc loop worker seq /* { dg-error "'seq' overrides other OpenACC loop specifiers" } */ for (y = 0; y < 10; y++) #pragma acc loop vector for (z = 0; z < 10; z++) diff --git a/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c b/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c index 3a11ef5f..2608c12 100644 --- a/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c +++ b/gcc/testsuite/c-c++-common/goacc/loop-2-kernels.c @@ -106,13 +106,13 @@ void K(void) #pragma acc loop seq auto // { dg-error "'seq' overrides" } for (i = 0; i < 10; i++) { } -#pragma acc loop gang auto // { dg-error "'auto' conflicts" } +#pragma acc loop gang auto for (i = 0; i < 10; i++) { } -#pragma acc loop worker auto // { dg-error "'auto' conflicts" } +#pragma acc loop worker auto for (i = 0; i < 10; i++) { } -#pragma acc loop vector auto // { dg-error "'auto' conflicts" } +#pragma acc loop vector auto for (i = 0; i < 10; i++) { } } @@ -177,13 +177,13 @@ void K(void) #pragma acc kernels loop seq auto // { dg-error "'seq' overrides" } for (i = 0; i < 10; i++) { } -#pragma acc kernels loop gang auto // { dg-error "'auto' conflicts" } +#pragma acc kernels loop gang auto for (i = 0; i < 10; i++) { } -#pragma acc kernels loop worker auto // { dg-error "'auto' conflicts" } +#pragma acc kernels loop worker auto for (i = 0; i < 10; i++) { } -#pragma acc kernels loop vector auto // { dg-error "'auto' conflicts" } +#pragma acc kernels loop vector auto for (i = 0; i < 10; i++) { } } diff --git a/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c b/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c index 27f7bbd..457a894 100644 --- a/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c +++ b/gcc/testsuite/c-c++-common/goacc/loop-2-parallel.c @@ -90,13 +90,13 @@ void P(void) #pragma acc loop seq auto // { dg-error "'seq' overrides" } for (i = 0; i < 10; i++) { } -#pragma acc loop gang auto // { dg-error "'auto' conflicts" } +#pragma acc loop gang auto for (i = 0; i < 10; i++) { } -#pragma acc loop worker auto // { dg-error "'auto' conflicts" } +#pragma acc loop worker auto for (i = 0; i < 10; i++) { } -#pragma acc loop vector auto // { dg-error "'auto' conflicts" } +#pragma acc loop vector auto for (i = 0; i < 10; i++) { } @@ -150,13 +150,13 @@ void P(void) #pragma acc parallel loop seq auto // { dg-error "'seq' overrides" } for (i = 0; i < 10; i++) { } -#pragma acc parallel loop gang auto // { dg-error "'auto' conflicts" } +#pragma acc parallel loop gang auto for (i = 0; i < 10; i++) { } -#pragma acc parallel loop worker auto // { dg-error "'auto' conflicts" } +#pragma acc parallel loop worker auto for (i = 0; i < 10; i++) { } -#pragma acc parallel loop vector auto // { dg-error "'auto' conflicts" } +#pragma acc parallel loop vector auto for (i = 0; i < 10; i++) { } } -- 2.8.1