From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 42497 invoked by alias); 16 Aug 2017 16:49:01 -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 15697 invoked by uid 89); 16 Aug 2017 16:48:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no 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 ESMTP; Wed, 16 Aug 2017 16:48:03 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7DA8274A25; Wed, 16 Aug 2017 16:48:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7DA8274A25 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=law@redhat.com Received: from localhost.localdomain (ovpn-116-113.phx2.redhat.com [10.3.116.113]) by smtp.corp.redhat.com (Postfix) with ESMTP id 508DF5C476; Wed, 16 Aug 2017 16:48:02 +0000 (UTC) Subject: Re: [36/77] Use scalar_int_mode in the RTL iv routines To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org References: <8760ewohsv.fsf@linaro.org> <87tw2ghg8g.fsf@linaro.org> From: Jeff Law Message-ID: <53b8954a-7841-d6a3-9277-b893282923a4@redhat.com> Date: Wed, 16 Aug 2017 17:27:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <87tw2ghg8g.fsf@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg01009.txt.bz2 On 07/13/2017 02:51 AM, Richard Sandiford wrote: > This patch changes the iv modes in rtx_iv from machine_mode > to scalar_int_mode. It also passes the mode of the iv down > to subroutines; this avoids the previous situation in which > the mode information was sometimes lost and had to be added > by the caller on return. > > Some routines already took a mode argument, but the patch > tries to standardise on passing it immediately before the > argument it describes. > > gcc/ > 2017-07-13 Richard Sandiford > Alan Hayward > David Sherwood > > * cfgloop.h (rtx_iv): Change type of extend_mode and mode to > scalar_int_mode. > (niter_desc): Likewise mode. > (iv_analyze): Add a mode parameter. > (biv_p): Likewise. > (iv_analyze_expr): Pass the mode paraeter before the rtx it describes > and change its type to scalar_int_mode. > * loop-iv.c: Update commentary at head of file. > (iv_constant): Pass the mode paraeter before the rtx it describes > and change its type to scalar_int_mode. Remove VOIDmode handling. > (iv_subreg): Change the type of the mode parameter to scalar_int_mode. > (iv_extend): Likewise. > (shorten_into_mode): Likewise. > (iv_add): Use scalar_int_mode. > (iv_mult): Likewise. > (iv_shift): Likewise. > (canonicalize_iv_subregs): Likewise. > (get_biv_step_1): Pass the outer_mode parameter before the rtx > it describes and change its mode to scalar_int_mode. Also change > the type of the returned inner_mode to scalar_int_mode. > (get_biv_step): Likewise, turning outer_mode from a pointer > into a direct parameter. Update call to get_biv_step_1. > (iv_analyze_biv): Add an outer_mode parameter. Update calls to > iv_constant and get_biv_step. > (iv_analyze_expr): Pass the mode parameter before the rtx it describes > and change its type to scalar_int_mode. Don't initialise iv->mode > to VOIDmode and remove later checks for its still being VOIDmode. > Update calls to iv_analyze_op and iv_analyze_expr. Check > is_a when changing the mode under consideration. > (iv_analyze_def): Ignore registers that don't have a scalar_int_mode. > Update call to iv_analyze_expr. > (iv_analyze_op): Add a mode parameter. Reject subregs whose > inner register is not also a scalar_int_mode. Update call to > iv_analyze_biv. > (iv_analyze): Add a mode parameter. Update call to iv_analyze_op. > (biv_p): Add a mode parameter. Update call to iv_analyze_biv. > (iv_number_of_iterations): Use is_a instead of > separate mode class checks. Update calls to iv_analyze. Remove > fix-up of VOIDmodes after iv_analyze_biv. > * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that > don't have a scalar_int_mode. Update call to biv_p. OK. jeff