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.vele...@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

Reply via email to