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

--- Comment #5 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:c01ae2ab6b227e21835d128c90e974dce4604be9

commit r11-8027-gc01ae2ab6b227e21835d128c90e974dce4604be9
Author: Richard Biener <rguent...@suse.de>
Date:   Wed Apr 7 13:17:05 2021 +0200

    tree-optimization/99954 - fix loop distribution memcpy classification

    This fixes bogus classification of a copy as memcpy.  We cannot use
    plain dependence analysis to decide between memcpy and memmove when
    it computes no dependence.  Instead we have to try harder later which
    the patch does for the gcc.dg/tree-ssa/ldist-24.c testcase by resorting
    to tree-affine to compute the difference between src and dest and
    compare against the copy size.

    2021-04-07  Richard Biener  <rguent...@suse.de>

            PR tree-optimization/99954
            * tree-loop-distribution.c: Include tree-affine.h.
            (generate_memcpy_builtin): Try using tree-affine to prove
            non-overlap.
            (loop_distribution::classify_builtin_ldst): Always classify
            as PKIND_MEMMOVE.

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

Reply via email to