------- 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

Reply via email to