[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