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.

Thanks,
Tejas.

Reply via email to