[PATCH] Fix seq_cost prototype to use signed int

Jeff Law law@redhat.com
Tue Sep 8 15:39:00 GMT 2015


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  <jiong.wang@arm.com>
>>>
>>> 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



More information about the Gcc-patches mailing list