On Wed, Jan 25, 2017 at 3:56 PM, Segher Boessenkool
<seg...@kernel.crashing.org> wrote:
> Hi!
>
> I was worried this patch would prevent too many other optimisations,
> so I looked into better options.  I didn't find any.  I tested the
> effects of the patch on 31 architectures (building GCC and then Linux
Thanks very much for this, that's a lot of testing work.  I will
revise the patch by explaining why is the change, as well as the
impact.

Thanks,
bin
> with it; 6 errored out building the kernel).  There were exactly zero
> differences in generated code.
>
> The patch is fine for mainline.  Thanks Bin!
>
>
> Segher
>
>
> On Thu, Dec 01, 2016 at 09:47:51AM +0000, Bin Cheng wrote:
>> 2016-12-01  Bin Cheng  <bin.ch...@arm.com>
>>
>>       PR rtl-optimization/78559
>>       * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
>>       other_insn in combine.
>
>> diff --git a/gcc/combine.c b/gcc/combine.c
>> index 22fb7a9..93b0901 100644
>> --- a/gcc/combine.c
>> +++ b/gcc/combine.c
>> @@ -4138,7 +4138,9 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, 
>> rtx_insn *i0,
>>                                    PATTERN (undobuf.other_insn)))
>>             ||(REG_NOTE_KIND (note) == REG_UNUSED
>>                && !reg_set_p (XEXP (note, 0),
>> -                             PATTERN (undobuf.other_insn))))
>> +                             PATTERN (undobuf.other_insn)))
>> +           || REG_NOTE_KIND (note) == REG_EQUAL
>> +           || REG_NOTE_KIND (note) == REG_EQUIV)
>>           remove_note (undobuf.other_insn, note);
>>       }

Reply via email to