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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:5ea2965b499f9e491e45db19fedbccfccb75076a

commit r14-5444-g5ea2965b499f9e491e45db19fedbccfccb75076a
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Nov 14 11:37:13 2023 +0100

    tree-optimization/112281 - loop distribution and zero dependence distances

    We currently distribute

      for (c = 2; c; c--)
        for (e = 0; e < 2; e++) {
          d[c] = b = d[c + 1];
          d[c + 1].a = 0;
        }

    in a wrong way where the inner loop zero dependence distance should
    make us preserve stmt execution order.  We fail to do so since we
    only look for a fully zero distance vector rather than looking at
    the innermost loop distance.  This is somewhat similar to PR87022
    where we instead looked at the outermost loop distance and changed
    this to what we do now.  The following switches us to look at the
    innermost loop distance.

            PR tree-optimization/112281
            * tree-loop-distribution.cc (pg_add_dependence_edges):
            Preserve stmt order when the innermost loop has exact
            overlap.

            * gcc.dg/torture/pr112281.c: New testcase.

Reply via email to