------- Comment #3 from rguenth at gcc dot gnu dot org 2010-07-20 11:20 ------- #1 0x0000000000aeab84 in propagate_rhs_into_lhs (stmt=0x7ffff5b4d370, lhs=0x7ffff5afc738, rhs=0x7ffff5afc738, interesting_names=0x17b93c8) at /space/rguenther/src/svn/trunk/gcc/tree-ssa-dom.c:2728 2728 gcc_assert (!all || has_zero_uses (lhs)); (gdb) p all $1 = 1 '\001' (gdb) p lhs (gdb) call debug_immediate_uses_for (lhs) g_67.1_6 : --> single use. g_67.1_6 = g_67.1_6;
We have <bb 9>: # l_85_37 = PHI <0(9), 0(4)> # prephitmp.12_36 = PHI <g_67.1_6(9), g_67.1_7(4)> g_67.1_6 = prephitmp.12_36 ^ l_85_37; goto <bb 9>; and eliminate_degenerate_phis replaces it with the above through the intermediate <bb 9>: # prephitmp.12_36 = PHI <g_67.1_6(9)> g_67.1_6 = prephitmp.12_36; goto <bb 9>; I have a patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44977