[Bug tree-optimization/107937] [13 Regression] ICE in find_var_cmp_const, at gimple-predicate-analysis.cc:257 since r13-4408-gb628cad9e093f7a3

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 1 09:54:00 GMT 2022


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

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

https://gcc.gnu.org/g:abf05583dbc86a6667b63f5bda6ba57fe55a1b25

commit r13-4437-gabf05583dbc86a6667b63f5bda6ba57fe55a1b25
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Dec 1 10:12:28 2022 +0100

    tree-optimization/107937 - uninit predicate simplification fixup

    The following changes the predicate representation to record the
    value of a predicate with an empty set of AND predicates.  That's
    necessary to properly represent the conservative fallback for the
    def vs use predicates.  Since simplification now can result in
    such an empty set this distinction becomes important and we need
    to check for this as we otherwise ICE.

            PR tree-optimization/107937
            * gimple-predicate-analysis.h (predicate::is_true): New.
            (predicate::is_false): Likewise.
            (predicate::empty_val): Likewise.
            (uninit_analysis::uninit_analysis): Properly initialize
            def_preds.
            * gimple-predicate-analysis.cc (simplify_1b): Indicate
            whether the chain became empty.
            (predicate::simplify): Release emptied chain before removing it.
            (predicate::normalize): Replace temporary object with assertion.
            (uninit_analysis::is_use_guarded): Deal with predicates
            that simplify to true/false.

            * gcc.dg/pr107937.c: New testcase.


More information about the Gcc-bugs mailing list