On 16/01/14 18:22, Tejas Belagod wrote:
> Tejas Belagod wrote:
>> Tejas Belagod wrote:
>>> Hi,
>>>
>>> Currently, CANNOT_CHANGE_MODE_CLASS is too restrictive wrt the mode-changes 
>>> it 
>>> allows on FPREGs - it allows none at the moment. In fact, there are many 
>>> mode 
>>> changes that are safe and can be allowed. For example, in a pattern like:
>>>
>>>      (subreg:SF (reg:V4SF v0) 0)
>>>
>>> it is legal to reduce this to
>>>
>>>       (reg:SF v0)
>>>
>>> The attached patch helps parts of rtlanal.c make such decisions(eg. 
>>> simplify_subreg_regno).
>>>
>>> Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk?
>>>
>>> Thanks,
>>> Tejas Belagod
>>> ARM.
>>>
>>> Changelog:
>>>
>>> 2013-11-28  Tejas Belagod  <tejas.bela...@arm.com>
>>>
>>> gcc/
>>>     * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
>>>     Declare.
>>>     * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): New.
>>>     * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
>>>     backend function aarch64_cannot_change_mode_class.
>>>
>>
>> Hi,
>>
>> I'm testing a patch that is more general than the change presented here for 
>> CANNOT_CHANGE_MODE_CLASS. This patch is now defunct.
> 
> Ideally CANNOT_CHANGE_MODE_CLASS should be undefined, but that exposed a bug 
> in 
> LRA and subregs in general.
> 
> Until http://gcc.gnu.org/ml/gcc/2013-12/msg00086.html  and 
> http://gcc.gnu.org/ml/gcc/2014-01/msg00087.html are resolved, we have to run 
> with the attached patch. It is a slightly modified version of the initial 
> patch.
> 
> Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk?
> 
> Thanks,
> Tejas.
> 
> 2014-01-16  Tejas Belagod  <tejas.bela...@arm.com>
> 
> gcc/
>       * config/aarch64/aarch64-protos.h
>       (aarch64_cannot_change_mode_class_ptr): Declare.
>       * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
>       aarch64_cannot_change_mode_class_ptr): New.
>       * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
>       backend hook aarch64_cannot_change_mode_class.
> 
> 

OK.

R.


Reply via email to