From patchwork Mon Aug 10 19:39:02 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 505775 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org 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 6C8981402BC for ; Tue, 11 Aug 2015 05:39:29 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=f34OQSJz; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:in-reply-to:references:date:message-id:mime-version :content-type; q=dns; s=default; b=J7lhfDigTqr011Zur3Al/PBeU78ps KsYMbpdwzgkn1QlJBPGjcmPu3zKsKgCixfE27S1oJhXc8U71FDHmGJXaFkBA+JEL dqSX7P6D0jo8YGnhVR2HLkcS6mMsm5VKehu46PNfZ7sfO/IE9gM5nXDAeK9yJNgw +HB0dE8D40ILeQ= 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:from :to:subject:in-reply-to:references:date:message-id:mime-version :content-type; s=default; bh=jMRZPu4qo2XDJJrELUgZH0DFKnk=; b=f34 OQSJzYwLKRKsf/ERmvS0GIzx8oNwAR8DOhAxCyanIQr6zsE0+ATUV6ZeuKfq0dfe 5Gt3zXycyEx8vXZPcjkjdflzNN53PeW+MYUqI/htzXCJ4oG+Px+qRgYuJEmXqem1 0FP2Jyw0REQzo2uqNwPQ3NQ6bLAdPgpOlelujdBc= Received: (qmail 87901 invoked by alias); 10 Aug 2015 19:39:21 -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 87835 invoked by uid 89); 10 Aug 2015 19:39:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 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; Mon, 10 Aug 2015 19:39:16 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-FEM-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1ZOsue-0004Ir-JT from Thomas_Schwinge@mentor.com for gcc-patches@gcc.gnu.org; Mon, 10 Aug 2015 12:39:12 -0700 Received: from feldtkeller.schwinge.homeip.net (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.3.224.2; Mon, 10 Aug 2015 20:39:11 +0100 From: Thomas Schwinge To: Nathan Sidwell , GCC Patches Subject: Re: [gomp4] internal fns for id & nid In-Reply-To: <55BFD258.1010301@acm.org> References: <55BFD258.1010301@acm.org> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) Date: Mon, 10 Aug 2015 21:39:02 +0200 Message-ID: <87si7rj5m1.fsf@kepler.schwinge.homeip.net> MIME-Version: 1.0 Hi! On Mon, 3 Aug 2015 16:43:04 -0400, Nathan Sidwell wrote: > I've committed this to gomp4 branch. It replaces the regular builtins > __builtin_GOACC_nid/__builtin_GOACC_id with internal functions IFN_OACC_DIM_SIZE > and IFN_OACC_DIM_POS -- moving further away from the PTX-specific naming of id & > nid. Thanks! > --- gcc/internal-fn.c (revision 226515) > +++ gcc/internal-fn.c (working copy) > +static void > +expand_GOACC_DIM_SIZE (gcall *stmt) > +{ > + tree lhs = gimple_call_lhs (stmt); > + > + if (!lhs) > + return; > + > + rtx target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); > + rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, > + VOIDmode, EXPAND_NORMAL); > +#ifdef HAVE_oacc_dim_size > + emit_insn (gen_oacc_dim_size (target, val)); > +#else > + emit_move_insn (target, const1_rtx); > +#endif > +} > + > +static void > +expand_GOACC_DIM_POS (gcall *stmt) > +{ > + tree lhs = gimple_call_lhs (stmt); > + > + if (!lhs) > + return; > + > + rtx target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); > + rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, > + VOIDmode, EXPAND_NORMAL); > +#ifdef HAVE_oacc_dim_pos > + emit_insn (gen_oacc_dim_pos (target, val)); > +#else > + emit_move_insn (target, const0_rtx); > +#endif > +} Bootstrap failure: [...]/source-gcc/gcc/internal-fn.c: In function 'void expand_GOACC_DIM_SIZE(gcall*)': [...]/source-gcc/gcc/internal-fn.c:1996:7: error: unused variable 'val' [-Werror=unused-variable] rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, ^ [...]/source-gcc/gcc/internal-fn.c: In function 'void expand_GOACC_DIM_POS(gcall*)': [...]/source-gcc/gcc/internal-fn.c:2014:7: error: unused variable 'val' [-Werror=unused-variable] rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, ^ I'm assuming it is permissible to not expand_expr the call argument (for side effects) in these two cases (please shout if that's wrong); committed to gomp-4_0-branch in r226767: commit f3907d648a9c9420deb4fb9f295b6e192a209f8d Author: tschwinge Date: Mon Aug 10 19:37:49 2015 +0000 Address -Werror=unused-variable diagnostic Fixup for r226531. gcc/ * internal-fn.c (expand_GOACC_DIM_SIZE) [!HAVE_oacc_dim_size]: Don't define and set variable val. (expand_GOACC_DIM_POS) [!HAVE_oacc_dim_pos]: Likewise. * internal-fn.c (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS) [!HAVE_oacc_dim_size]: Don't define and set variable val. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@226767 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.gomp | 6 ++++++ gcc/internal-fn.c | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) Grüße, Thomas diff --git gcc/ChangeLog.gomp gcc/ChangeLog.gomp index 62f5e59..542b1af 100644 --- gcc/ChangeLog.gomp +++ gcc/ChangeLog.gomp @@ -1,3 +1,9 @@ +2015-08-10 Thomas Schwinge + + * internal-fn.c (expand_GOACC_DIM_SIZE) [!HAVE_oacc_dim_size]: + Don't define and set variable val. + (expand_GOACC_DIM_POS) [!HAVE_oacc_dim_pos]: Likewise. + 2015-08-06 Cesar Philippidis * config/nvptx/nvptx.c (nvptx_expand_lock_unlock): Pass an diff --git gcc/internal-fn.c gcc/internal-fn.c index 72bb0bd..05321e1 100644 --- gcc/internal-fn.c +++ gcc/internal-fn.c @@ -1993,9 +1993,9 @@ expand_GOACC_DIM_SIZE (gcall *stmt) return; rtx target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); - rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, - VOIDmode, EXPAND_NORMAL); #ifdef HAVE_oacc_dim_size + rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, + VOIDmode, EXPAND_NORMAL); emit_insn (gen_oacc_dim_size (target, val)); #else emit_move_insn (target, const1_rtx); @@ -2011,9 +2011,9 @@ expand_GOACC_DIM_POS (gcall *stmt) return; rtx target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); - rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, - VOIDmode, EXPAND_NORMAL); #ifdef HAVE_oacc_dim_pos + rtx val = expand_expr (gimple_call_arg (stmt, 0), NULL_RTX, + VOIDmode, EXPAND_NORMAL); emit_insn (gen_oacc_dim_pos (target, val)); #else emit_move_insn (target, const0_rtx);