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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Aldy Hernandez <al...@gcc.gnu.org>:

https://gcc.gnu.org/g:4ef0f1e90f1795b1f2d5bba05ed299e8c7635fd4

commit r11-4743-g4ef0f1e90f1795b1f2d5bba05ed299e8c7635fd4
Author: Aldy Hernandez <al...@redhat.com>
Date:   Thu Nov 5 12:40:51 2020 +0100

    Drop overflow from constants while building ranges in ranger.

    Sometimes the overflow flag will leak into the IL.  Drop it while
    creating ranges.

    There are various places we could plug this.  This patch just plugs things
    at get_tree_range which is the entry point for ranges from tree
expressions.
    It fixes the PR, and probably fixes the ranger entirely, but we may need
    to revisit this.

    For example, I looked to see if there were other places that created
    ranges with TREE_OVERFLOW set, and there are various.  For example,
    the following code pattern appears multiple times in vr-values.c:

      else if (is_gimple_min_invariant (op0))
        vr0.set (op0);

    This can pick up TREE_OVERFLOW from the IL if present.  However, the
    ranger won't see them so we're good.

    At some point we should audit all this.  Or perhaps just nuke all
    TREE_OVERFLOW's at irange::set.

    For now, this will do.

    gcc/ChangeLog:

            PR tree-optimization/97721
            * gimple-range.cc (get_tree_range): Drop overflow from constants.

    gcc/testsuite/ChangeLog:

            * gcc.dg/pr97721.c: New test.

Reply via email to