------- Comment #6 from rguenth at gcc dot gnu dot org  2006-03-07 10:39 -------
With -fno-ivopts -fno-tree-vrp tree-optimizers produce the same for both 4.1.0
and 4.2.0 until tree loop-invariant-motion, which does the wrong transformation
because of bogus alias information:

<L11>:;

  # TMT.6_23 = PHI <TMT.6_24(3), TMT.6_25(5)>;
  # ptr_3 = PHI <&BF_current.P[0](3), ptr_9(5)>;
  # L_2 = PHI <0(3), L_14(5)>;
<L7>:;
  ptr_9 = ptr_3 + 8B;
  #   VUSE <BF_current_21>;
  D.1297_10 = BF_current.P[0];
  L_11 = L_2 ^ D.1297_10;
  tmp4_12 = L_11 >> 24; 
  #   VUSE <BF_current_21>;
  D.1298_13 = BF_current.P[17];
  L_14 = tmp4_12 ^ D.1298_13;
  D.1299_15 = ptr_9 - 8B;
  #   TMT.6_25 = V_MAY_DEF <TMT.6_23>;
  *D.1299_15 = L_14;
  if (ptr_9 < &BF_current.P[18]) goto <L12>; else goto <L4>;

the store to *D.1299_15 kills BF_current_21, which we don't notice.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org
          Component|rtl-optimization            |tree-optimization
           Keywords|                            |alias


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

Reply via email to