[PATCH, rs6000] Fixing PR 67145
Richard Henderson
rth@redhat.com
Mon Feb 29 19:11:00 GMT 2016
On 02/26/2016 01:52 PM, Segher Boessenkool wrote:
> On Fri, Feb 26, 2016 at 01:35:10PM -0800, Richard Henderson wrote:
>> On 02/26/2016 01:03 PM, Segher Boessenkool wrote:
>>> On Thu, Feb 25, 2016 at 09:08:32PM -0800, Richard Henderson wrote:
>>>> + /* Perform rematerialization if only all operands are registers and
>>>> + all operations are PLUS. */
>>>> + for (i = 0; i < n_ops; i++)
>>>> + if (ops[i].neg || !REG_P (ops[i].op))
>>>> + return NULL_RTX;
>>>> + goto gen_result;
>>>> + }
>>>
>>> If you check for fixed registers as well here, does that work for you?
>>
>> Maybe. It prevents canonicalization of reg+fp vs fp+reg, which could well
>> occur via arithmetic on locally allocated arrays.
>
> Where are these canonicalization rules described?
swap_commutative_operands_p?
> It is stage 4. This rs6000 change has almost 100% chance of introducing
> regressions.
Really? Nearly 100%?
Ignoring the change to subf<>3_carry_in_m1 for a moment, how do any of the
other changes result in the non-recognition of rtl that was previously valid?
As far as I can see we only accept more rtl.
r~
More information about the Gcc-patches
mailing list