------- Comment #2 from rguenth at gcc dot gnu dot org 2010-05-07 20:57 -------
Confirmed.
Found partial redundancy for expression {[email protected]_13(D) (0003)
Inserted pretmp.6_26 = g_54;
in predecessor 6
Created phi prephitmp.7_20 = PHI <g_54.1_5(8), pretmp.6_26(6)>
in block 3
Found partial redundancy for expression {[email protected]_13(D) (0003)
Inserted pretmp.6_10 = g_54;
in predecessor 2
Created phi prephitmp.7_15 = PHI <pretmp.6_10(2), prephitmp.7_20(7)>
in block 6
Replaced redundant PHI node defining prephitmp.7_20 with prephitmp.7_15
Replaced g_54 with prephitmp.7_15 in g_54.1_5 = g_54;
Replaced redundant PHI node defining prephitmp.7_15 with pretmp.6_10
Removing unnecessary insertion:pretmp.6_10 = g_54;
Removing unnecessary insertion:pretmp.6_26 = g_54;
oops. It looks like the necessity propagation does not work for
the prephitmp.7_15 replacement.
Before eliminate():
lbl_110:
g_4 = 0;
pretmp.6_10 = g_54;
goto <bb 6>;
<bb 8>:
<bb 3>:
# p_75_22 = PHI <p_75_8(8), -28(6)>
# prephitmp.7_20 = PHI <g_54.1_5(8), pretmp.6_26(6)>
g_4.0_4 = g_4;
if (g_4.0_4 != 0)
goto <bb 7>;
else
goto <bb 4>;
<bb 4>:
g_54.1_5 = g_54;
*g_54.1_5 = 0;
p_75.2_6 = (uint32_t) p_75_22;
D.1987_17 = p_75.2_6 + 0x0ffffffff;
p_75_8 = (int32_t) D.1987_17;
if (p_75_8 != 0)
goto <bb 8>;
else
goto <bb 5>;
<bb 5>:
return &l_105[5];
<bb 6>:
# prephitmp.7_15 = PHI <pretmp.6_10(2), prephitmp.7_20(7)>
pretmp.6_26 = g_54;
goto <bb 3>;
<bb 7>:
g_4 = 0;
goto <bb 6>;
and before remove_dead_inserted_code():
lbl_110:
g_4 = 0;
pretmp.6_10 = g_54;
goto <bb 6>;
<bb 8>:
<bb 3>:
# p_75_22 = PHI <p_75_8(8), -28(6)>
g_4.0_4 = g_4;
if (g_4.0_4 != 0)
goto <bb 7>;
else
goto <bb 4>;
<bb 4>:
g_54.1_5 = pretmp.6_10;
*g_54.1_5 = 0;
p_75.2_6 = (uint32_t) p_75_22;
D.1987_17 = p_75.2_6 + 0x0ffffffff;
p_75_8 = (int32_t) D.1987_17;
if (p_75_8 != 0)
goto <bb 8>;
else
goto <bb 5>;
<bb 5>:
return &l_105[5];
<bb 6>:
pretmp.6_26 = g_54;
goto <bb 3>;
<bb 7>:
g_4 = 0;
goto <bb 6>;
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu dot
| |org
Component|c |tree-optimization
Last reconfirmed|2010-05-07 20:52:13 |2010-05-07 20:57:29
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44030