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.


> (insn 9 53 34 8 (set (reg:SI 110 [ D.4934 ])
>         (const_int -1 [0xffffffffffffffff])) 
> /work/src/gcc/gcc/testsuite/gcc.target/arm/pr43920-2.c:21 613 
> {*thumb2_movsi_vfp}
>      (nil))
>
> (insn 8 45 50 6 (set (reg:SI 110 [ D.4934 ])
>         (reg/v:SI 111 [ startD.4917 ])) 
> /work/src/gcc/gcc/testsuite/gcc.target/arm/pr43920-2.c:21 613 
> {*thumb2_movsi_vfp}
>      (expr_list:REG_EQUAL (const_int -1 [0xffffffffffffffff])
>         (nil)))
>
> (insn 6 49 54 7 (set (reg:SI 110 [ D.4934 ])
>         (reg/v:SI 112 [ endD.4918 ])) 
> /work/src/gcc/gcc/testsuite/gcc.target/arm/pr43920-2.c:21 613 
> {*thumb2_movsi_vfp}
>      (expr_list:REG_EQUAL (const_int -1 [0xffffffffffffffff])
>         (nil)))
>
> Jump2 pass, optimizing common code, was looking at notes to reason about
> register values and failing to recognize those insns to be equal.

I suppose you are talking about the head/tail merging code? Can you
please provide a test case for problem preferably filed in Bugzilla)?

Ciao!
Steven

Reply via email to