[PATCH] [RTL] Relax CSE check to set REG_EQUAL notes.

Alex Velenko Alex.Velenko@arm.com
Fri Apr 24 12:52:00 GMT 2015



On 24/04/15 02:16, Jeff Law wrote:
> On 04/10/2015 03:14 AM, Alex Velenko wrote:
>> On 09/03/15 17:40, Jeff Law wrote:
>>> On 03/09/15 03:53, Steven Bosscher wrote:
>>>> On Wed, Mar 4, 2015 at 12:09 PM, Alex Velenko wrote:
>>>>> For example, in arm testcase pr43920-2.c, CSE previously decided not
>>>>> to put
>>>>> an "obvious" note on insn 9, as set value was the same as note value.
>>>>> At the same time, other insns set up as -1 were set up through a
>>>>> register
>>>>> and did get a note:
>>>>
>>>> ...which is the point of the REG_EQUAL notes. In insn 8 there is a
>>>> REG_EQUAL note to show that the value of r111 is known. In insn 9 the
>>>> known value is, well, known from SET_SRC so there is no need for a
>>>> REG_EQUAL note. Adding REG_EQUAL notes in such cases is just wasteful.
>>> RIght.  I'd rather look into why later passes aren't discovering
>>> whatever equivalences are important rather than adding the redundant
>>> notes.
>>>
>>> Regardless, I think this is a gcc-6 issue, so I'm not likely to look at
>>> it in the immediate future.
>>>
>>> jeff
>>>
>>>
>> Hi Jeff,
>> I reworked the patch to satisfy your preference.
>>
>> This patch enables cfgcleanup.c to use const int rtx as REG_EQUAL notes.
>> For example, this benefits Jump2 to find extra optimisation opportunities.
>> This patch fixes gcc.target/arm/pr43920-2.c for arm-none-eabi.
>>
>> Bootstraped on x86, run full regression run on arm-none-eabi and
>> aarch64-none-elf.
>>
>> Is this patch ok?
>>
>> gcc/
>>
>> 2015-03-17  Alex Velenko  <Alex.Velenko@arm.com>
>>
>>       * cfgcleanup.c (can_replace_by): Use const int rtx of single set as
>>       REG_EQUAL note.
> Now I finally see this in my queue.  I recalled the discussion around
> whether or not to add the redundant notes, but hadn't had a chance to
> look at the updated patch.
>
> AFAICT, this is redundant with Shiva's patch, right?
>
> jeff
>

Hi Jeff,
Yes, you are correct, this patch is now redundant.
Kind regards,
Alex



More information about the Gcc-patches mailing list