From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10186 invoked by alias); 8 Sep 2015 15:36:09 -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 10176 invoked by uid 89); 8 Sep 2015 15:36:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no 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; Tue, 08 Sep 2015 15:36:04 +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 9857E32C400; Tue, 8 Sep 2015 15:36:02 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-28.phx2.redhat.com [10.3.113.28]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t88Fa1dU028490; Tue, 8 Sep 2015 11:36:02 -0400 Subject: Re: [PATCH] Fix seq_cost prototype to use signed int To: Jiong Wang References: <55EEF8BC.7040608@redhat.com> Cc: gcc-patches List From: Jeff Law Message-ID: <55EF0061.6090203@redhat.com> Date: Tue, 08 Sep 2015 15:39:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-09/txt/msg00530.txt.bz2 On 09/08/2015 09:17 AM, Jiong Wang wrote: > > Jeff Law writes: > >> On 09/08/2015 06:17 AM, Jiong Wang wrote: >>> >>> All other cost helper functions are using signed int to hold cost >>> while seq_cost is using unsigned int. >>> >>> This fix this. bootstrap OK on x86. >>> >>> OK for trunk? >>> >>> 2015-09-08 Jiong Wang >>> >>> gcc/ >>> * rtl.h (seq_cost): Change return type from "unsigned" to "int". >>> * rtlanal.c (seq_cost): Likewise. >> Why not go the other way and start making things unsigned -- for a cost >> function like this, unsigned seems more natural to me. > > I was using "(unsigned) -1" to represent maximum cost, then later known > there is MAX_COST macro and found it's actually signed type, and quick > search shows most of the code in gcc/rtlanal.c, are using "int", so I am > changing seq_cost which seems to be the only cost helper using unsigned. Understood. But the natural type should be unsigned as far as I can tell. The fact that we're using signed types all over the place is probably a historical wart. So I'd start by changing the MAX_COST macro to an unsigned type, then fix any fallout from that. That should be a patch unto itself. Then we can have additional follow-up patches to fix the types of costing related variables, parameters & return values. Jeff