[PATCH][ARM] Fix costing of sign-extending load in rtx costs

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Thu May 19 13:26:00 GMT 2016


Ping.
Thanks,
Kyrill

On 11/05/16 10:00, Kyrill Tkachov wrote:
> Ping.
> https://gcc.gnu.org/ml/gcc-patches/2016-04/msg01655.html
>
> Thanks,
> Kyrill
>
> On 27/04/16 15:13, Kyrill Tkachov wrote:
>> Hi all,
>>
>> Another costs issue that came out of the investigation for PR 65932 is that
>> sign-extending loads get a higher cost than they should in the arm backend.
>> The problem is that when handling a sign-extend of a MEM we add the cost
>> of the load_sign_extend cost field and then recursively add the cost of the inner MEM
>> rtx, which is bogus. This will end up adding an extra load cost on it.
>>
>> The solution in this patch is to just remove that recursive step.
>> With this patch from various CSE dumps I see much more sane costs assign to these
>> expressions (such as 12 instead of 32 or higher).
>>
>> Bootstrapped and tested on arm-none-linux-gnueabihf.
>>
>> Ok for trunk?
>>
>> Thanks,
>> Kyrill
>>
>> 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>>
>>     * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
>>     Don't add cost of inner memory when handling sign-extended
>>     loads.
>



More information about the Gcc-patches mailing list