[PR68432 01/22][ARM] Remove operand dependency from "type" attribute

Yvan Roux yvan.roux@linaro.org
Wed Nov 25 14:11:00 GMT 2015


Hi,

On 25 November 2015 at 14:54, Bernd Schmidt <bschmidt@redhat.com> wrote:
> On 11/25/2015 01:21 PM, Richard Sandiford wrote:
>>
>> -         (plus:SI (match_operand:SI 0 "s_register_operand" "l,  r")
>> -                  (match_operand:SI 1 "arm_add_operand"    "lPv,rIL"))
>> +         (plus:SI (match_operand:SI 0 "s_register_operand" "l,l, r,r")
>> +                  (match_operand:SI 1 "arm_add_operand"    "l,Pv,r,IL"))
>
>
> I'll leave it to ARM maintainers to approve or reject, but I want to point
> out one thing: IMO this sort of thing is better written as "l,lPv,r,rIL",
> allowing a larger set of inputs for the later alternatives while still
> returning the more specific earlier one if it matches. I don't know whether
> LRA takes advantage of that, but it could help reload, and any post-reload
> pass might look at the current alternative for a given insn to see whether
> it can be replaced by a register.

I don't remember the PR number (I can dig if needed) but I remember
that we had an LRA ICE due to redundancy in patterns alternative
description.  Thus, if it is beneficial to give larger set of inputs
in later alternatives, we have to strengthen the support in LRA.

> Bernd



More information about the Gcc-patches mailing list