[Bug rtl-optimization/25130] [4.1/4.2 Regression] miscompilation in GCSE
steven at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Dec 17 18:24:00 GMT 2005
------- Comment #9 from steven at gcc dot gnu dot org 2005-12-17 18:23 -------
Breakpoint 7, compute_transp (x=0x4021557c, indx=0, bmap=0x894e1b8, set_p=0) at
gcse.c:2500
2500 rtx list_entry = canon_modify_mem_list[bb_index];
(gdb) p debug_rtx(x)
(mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfffffff8])) [0 <variable>._M_impl._M_start_node+0 S4
A32])
$33 = void
(gdb) next
2502 while (list_entry)
(gdb)
2509 dest = XEXP (list_entry, 0);
(gdb)
2510 list_entry = XEXP (list_entry, 1);
(gdb)
2511 dest_addr = XEXP (list_entry, 0);
(gdb)
2513 if (canon_true_dependence (dest, GET_MODE (dest),
dest_addr,
(gdb)
2522 list_entry = XEXP (list_entry, 1);
(gdb) p debug_rtx(x)
(mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfffffff8])) [0 <variable>._M_impl._M_start_node+0 S4
A32])
$34 = void
(gdb) p debug_rtx(dest)
(mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfffffff8])) [0 clusters.D.1846._M_impl._M_finish_cur+0
S4 A32])
$35 = void
(gdb)
so (mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffff8]))) and
(mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffff8]))) don't
conflict... But frame is not changed in the function, so surely this is wrong?
(Maybe this is obvious to people with better RTL-fu than me, so don't be too
harsh on me ;-)
--
steven at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |alias
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25130
More information about the Gcc-bugs
mailing list