http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46403

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |WORKSFORME

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-10 
12:16:36 UTC ---
I don't see this PRE, instead I see

Found partial redundancy for expression {array_ref<x_1(D),0,4>,a...@.mem_7 
(0005)
Inserted pretmp.3_12 = a[x_1(D)];
 in predecessor 5
Created phi prephitmp.4_15 = PHI <pretmp.3_12(5), z_3(D)(3)>
 in block 4
Replaced a[x_1(D)] with prephitmp.4_15 in D.2691_5 = a[x_1(D)];

<bb 2>:
  if (x_1(D) != 0)
    goto <bb 3>;
  else
    goto <bb 5>;

<bb 5>:
  pretmp.3_12 = a[x_1(D)];
  goto <bb 4>;

<bb 3>:
  *y_2(D) = z_3(D);
  a[x_1(D)] = z_3(D);

<bb 4>:
  # prephitmp.4_15 = PHI <pretmp.3_12(5), z_3(D)(3)>
  m_4 = *y_2(D);
  D.2691_5 = prephitmp.4_15;
  D.2690_6 = D.2691_5 + m_4;
  return D.2690_6;

which indeed removes a redundancy.  En/disabling RTL PRE doesn't change
the generated code so you can't mean that either.

Reply via email to