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

--- Comment #11 from Robin Dapp <rdapp at gcc dot gnu.org> ---
On Friday I looked into one of the Fortran fails, class_67.f90 and debugged it
independently without reading here further.  It is also due to the same reason
- alias analysis finds that the predicated store destination cannot alias with
the load destination and moves the load in front of the store.

  /* If the pointer based access is bigger than the variable they cannot
     alias.  This is similar to the check below where we use TBAA to
     increase the size of the pointer based access based on the dynamic
     type of a containing object we can infer from it.  */
  poly_int64 dsize2;
  if (known_size_p (size1)
      && poly_int_tree_p (DECL_SIZE (base2), &dsize2)
      && known_lt (dsize2, size1))
    return false;

This is where alias analysis "fails".  That looks like the exact same thing
posted in the other thread, so thanks for finding that, Pan.

Reply via email to