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

--- Comment #15 from GCC 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:ea1deefe54ea1c5182bfa179abf36469c9ec6974

commit r15-6945-gea1deefe54ea1c5182bfa179abf36469c9ec6974
Author: Richard Biener <rguent...@suse.de>
Date:   Wed Jan 15 14:31:57 2025 +0100

    tree-optimization/115494 - PRE PHI translation and ranges

    When we PHI translate dependent expressions we keep SSA defs in
    place of the translated expression in case the expression itself
    did not change even though it's context did and thus the validity
    of ranges associated with it.  That eventually leads to simplification
    errors given we violate the precondition that used SSA defs fed to
    vn_valueize are valid to use (including their associated ranges).
    The following makes sure to replace those with new representatives
    always, not only when the dependent expression translation changed it.

    The fix was originally discovered by Michael Morin.

            PR tree-optimization/115494
            * tree-ssa-pre.cc (phi_translate_1): Always generate a
            representative for translated dependent expressions.

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

    Co-Authored-By: Mikael Morin <mik...@gcc.gnu.org>

Reply via email to