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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

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

commit r14-6941-gb8faf1fca42a9b987fec0992ca5d63995b2640b3
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Jan 5 11:18:17 2024 +0100

    scev: Avoid ICE on results used in abnormal PHI args [PR113201]

    The following testcase ICEs when rslt is SSA_NAME_OCCURS_IN_ABNORMAL_PHI
    and we call replace_uses_by with a INTEGER_CST def, where it ICEs on:
                  if (e->flags & EDGE_ABNORMAL
                      && !SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val))
    because val is not an SSA_NAME.  One way would be to add
                      && TREE_CODE (val) == SSA_NAME
    check in between the above 2 lines in replace_uses_by.

    And/or the following patch just punts propagating constants to
    SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt uses.

    Or we could punt somewhere earlier in final value replacement (but dunno
    where).

    2024-01-05  Jakub Jelinek  <ja...@redhat.com>

            PR tree-optimization/113201
            * tree-scalar-evolution.cc (final_value_replacement_loop): Don't
call
            replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.

            * gcc.c-torture/compile/pr113201.c: New test.

Reply via email to