From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8501 invoked by alias); 9 Nov 2015 23:11:27 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 8489 invoked by uid 89); 9 Nov 2015 23:11:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 09 Nov 2015 23:11:25 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 3AFB48F4F3; Mon, 9 Nov 2015 23:11:24 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-142.phx2.redhat.com [10.3.113.142]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tA9NBNVH022219; Mon, 9 Nov 2015 18:11:24 -0500 Subject: Re: [PATCH][optabs][ifcvt][1/3] Define negcc, notcc optabs To: Kyrill Tkachov , GCC Patches References: <56409026.1050506@arm.com> From: Jeff Law Message-ID: <5641281B.3000702@redhat.com> Date: Mon, 09 Nov 2015 23:11:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56409026.1050506@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-11/txt/msg01131.txt.bz2 On 11/09/2015 05:23 AM, Kyrill Tkachov wrote: > Hi all, > > This is a rebase of the patch I posted at: > https://gcc.gnu.org/ml/gcc-patches/2015-09/msg00154.html > > The patch has been ok'd by Jeff but I wanted to hold off committing it > until > my fixes for the ifcvt regressions on sparc and x86_64 were fixed. > > The rebase conflicts were due to Richard's optabs splitting patch. > > I've also noticed that in my original patch I had a comparison of branch > cost with > the magic number '2'. I removed it from this version as it's not really > meaningful. > The transformation this patch enables is, at the moment, only supported > for arm > and aarch64 where it is always beneficial. If/when we have a proper > ifcvt costing > model (perhaps for GCC 7?) we'll update this accordingly if needed. > > Jeff, sorry for taking so long to commit this, I just wanted to fix the > other > ifcvt fallout before proceeding with more new functionality. > I have also uncovered a bug in the arm implementation of these optabs > (patch 3/3 in the series), so I'll post an updated version of that patch > as well soon. > > Ok to commit this updated version instead? > > Bootstrapped and tested on arm, aarch64 and x86_64. > It has been sitting in my tree for a couple of months now with no issues. > > Thanks, > Kyrill > > 2015-11-09 Kyrylo Tkachov > > * ifcvt.c (noce_try_inverse_constants): New function. > (noce_process_if_block): Call it. > * optabs.h (emit_conditional_neg_or_complement): Declare prototype. > * optabs.def (negcc_optab, notcc_optab): Declare. > * optabs.c (emit_conditional_neg_or_complement): New function. > * doc/tm.texi (Standard Names): Document negcc, notcc names. Thanks for addressing the ifcvt fallout first, then making sure this didn't get lost. Yes, this is fine for the trunk. jeff