https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125396

--- Comment #3 from Drea Pinski <pinskia at gcc dot gnu.org> ---

     An example:
      <bb 15> [local count: 182536112]:
      # arr1$0_32 = PHI <arr1$0_36(ab)(11)>

      <bb 14> [local count: 206998870]:
      # arr1$0_43(ab) = PHI <arr1$0_25(ab)(13), 9(15)>
      # sj12_44(ab) = PHI <sj12_31(ab)(13), arr1$0_32(15)>
      f8 ();

   Here bb 15 predecessor is a normal edge. But a successor edge of bb 14
   is abnormal.
   So when merging the forwarder bb 15 into bb14 we end up with:
      <bb 12> [local count: 206998870]:
      # arr1$0_42(ab) = PHI <arr1$0_24(ab)(11), 9(9)>
      # sj12_43(ab) = PHI <sj12_30(ab)(11), arr1$0_35(ab)(9)>
      f8 ();
    and now there is an overlap of live range of arr1$0_35 and arr1$0_42.

Reply via email to