From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 61409 invoked by alias); 5 Feb 2016 20:27:38 -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 61382 invoked by uid 89); 5 Feb 2016 20:27:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= 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; Fri, 05 Feb 2016 20:27:35 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 914BCA4CB5; Fri, 5 Feb 2016 20:27:34 +0000 (UTC) Received: from slagheap.utah.redhat.com (ovpn-113-84.phx2.redhat.com [10.3.113.84]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u15KRX0v011289; Fri, 5 Feb 2016 15:27:34 -0500 Subject: Re: [PATCH] PR rtl-optimization/64081: Enable RTL loop unrolling for duplicated exit blocks and back edges. To: Alexander Fomin , rguenther@suse.de References: <20160205134321.GA14773@msticlxl57.ims.intel.com> Cc: gcc-patches@gcc.gnu.org, izamyatin@gmail.com, dje.gcc@gmail.com From: Jeff Law Message-ID: <56B505B5.8020106@redhat.com> Date: Fri, 05 Feb 2016 20:27:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160205134321.GA14773@msticlxl57.ims.intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-02/txt/msg00451.txt.bz2 On 02/05/2016 06:43 AM, Alexander Fomin wrote: > Hi! > > Some kind of this patch was submitted about a year ago by Igor > Zamyatin. It's an attempt to fix PR rtl-optimization/64081 by enabling > RTL loop unrolling for duplicated exit blocks and back edges. > > At the time it caused AIX bootstrap failure, but now it's OK according > to David's testing. I've also bootstrapped and regtested it on > x86_64-linux-gnu. > > Is it still OK for trunk now, or you consider this v7 stuff? > Anyway, it's a regression. > > Thanks, > Alexander > --- > gcc/ > > PR rtl-optimization/64081 > * loop-iv.c (def_pred_latch_p): New function. > (latch_dominating_def): Allow specific cases with non-single > definitions. > (iv_get_reaching_def): Likewise. > (check_complex_exit_p): New function. > (check_simple_exit): Use check_complex_exit_p to allow certain cases > with exits not executing on any iteration. > > gcc/testsuite > > PR rtl-optimization/64081 > * gcc.dg/pr64081.c: New test. Normally I'd say that if it was approved before, then it's still good to go since there haven't been major conceptual changes in this code since the patch was originally written and now. However, in this instance the patch had been reported to cause problems on AIX, problems that we can't reproduce now -- which makes me want to be more cautious. Was it a problem with the patch, or some other latent issue -- we don't know at this point. So I think the way to go is to apply this patch on top of r219827 where it caused the AIX failure. Then bootstrap on aix and determine the root cause of of the AIX bootstrap failure. If it's this patch, then update the patch as needed. If the patch is just exposing a latent bug elsewhere, we should evaluate whether or not that latent but has been fixed or not before applying this fix to the trunk. It's considerably more work, but ISTM it's the right thing to do. jeff