https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111231

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=93946

--- Comment #33 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ah, there's now the commoned mems_same_for_tbaa_p.  And indeed postreload
triggers on the cselib.cc instance.  But there we only have

(gdb) p debug_rtx (src_equiv)
(mem/c:SI (value:SI 90:4664 @0x421eba8/0x42e10c0) [1 MEM[(struct Vec128
*)_179]+12 S4 A32])

and in the loc list elt the setting_insn

(insn 89 88 93 14 (parallel [
            (set (mem/c:SI (reg/f:SI 12 ip [201]) [1 MEM[(struct Vec128
*)_179]+0 S4 A64])
                (reg:SI 0 r0))
            (set (mem/c:SI (plus:SI (reg/f:SI 12 ip [201])
                        (const_int 4 [0x4])) [1 MEM[(struct Vec128 *)_179]+4 S4
A32])
                (reg:SI 1 r1))
            (set (mem/c:SI (plus:SI (reg/f:SI 12 ip [201])
                        (const_int 8 [0x8])) [1 MEM[(struct Vec128 *)_179]+8 S4
A64])
                (reg:SI 2 r2))
            (set (mem/c:SI (plus:SI (reg/f:SI 12 ip [201])
                        (const_int 12 [0xc])) [1 MEM[(struct Vec128 *)_179]+12
S4 A32])
                (reg:SI 3 r3))
        ]) 435 {*stm4_}
     (nil))

cselib_redundant_set_p isn't a good API to alter an earlier SET but it might
be adjusted to return it so postreload could pass in an optional output
parameter which when present would relax the alias check and return the
earlier SET for further consideration / altering.  Hoping CSELIB tables
will be unaffected by altering that insn.

Reply via email to