Ping.

Thanks,
Kyrill
On 12/05/15 10:07, Kyrill Tkachov wrote:
Ping.
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00013.html

Thanks,
Kyrill
On 01/05/15 09:24, Kyrill Tkachov wrote:
Hi all,

It occurs to me that in the IOR-of-shifts form of the rev16 operation we should 
be costing the operand properly.
For that we'd want to reuse the aarch_rev16_p function that does all the heavy 
lifting and get it to write the
innermost operand of the rev16 for further costing. In the process we relax 
that function a bit to accept any
rtx as the operand, not just REGs so that we can calculate the cost of moving 
them in a register appropriately.

This patch does just that and updates the arm and aarch64 callsites 
appropriately so that the operands are
processed properly.

In practice I don't expect this to make much difference since this patterns 
occurs rarely anyway, but it seems
like the 'right thing to do' (TM).

Bootstrapped and tested on arm,aarch64.

Ok for trunk?

Thanks,
Kyrill

2015-05-01  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>

       * config/arm/aarch-common-protos.h (aarch_rev16_p): Update signature
       to take a second argument.
       * config/arm/aarch-common.c (aarch_rev16_p): Add second argument.
       Write inner-most rev16 argument to it if recognised.
       (aarch_rev16_p_1): Likewise.
       * config/arm/arm.c (arm_new_rtx_costs): Properly cost rev16 operand
       in the IOR case.
       * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.

Reply via email to