[Bug rtl-optimization/62030] wrong code due to ifcvt merging two stores which have different aliasing sets
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 6 05:29:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62030
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here are the two stores:
(insn 30 25 33 3 (set (mem/f:DI (reg/v/f:DI 200 [ prev ]) [5 MEM[(struct head
*)&heads][_8].first+0 S8 A64])
(reg/v/f:DI 199 [ next ])) t.c:22 302 {*movdi_64bit}
(expr_list:REG_DEAD (reg/v/f:DI 200 [ prev ])
(expr_list:REG_DEAD (reg/v/f:DI 199 [ next ])
(nil))))
(insn 35 34 36 4 (set (mem/f:DI (reg/v/f:DI 200 [ prev ]) [3 prev_11->next+0 S8
A64])
(reg/v/f:DI 199 [ next ])) t.c:24 302 {*movdi_64bit}
(expr_list:REG_DEAD (reg/v/f:DI 200 [ prev ])
(expr_list:REG_DEAD (reg/v/f:DI 199 [ next ])
(nil))))
Note the reason why I think this does not happen for x86 (or even aarch64) is
due to the constraints on mem operands on MIPS.
More information about the Gcc-bugs
mailing list