[Bug rtl-optimization/105333] [10/11 Regression] ICE: in simplify_subreg, at simplify-rtx.cc:7346 with -Og -fno-tree-coalesce-vars -fno-tree-fre since r10-1094-g9919f5fe87a3def1

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 6 23:44:04 GMT 2022


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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:70d8bd6edae08bfc520dfb4b455b4592e3e2afe9

commit r11-9962-g70d8bd6edae08bfc520dfb4b455b4592e3e2afe9
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Apr 22 13:38:11 2022 +0200

    rtlanal: Fix up replace_rtx [PR105333]

    The following testcase FAILs, because replace_rtx replaces a REG with
    CONST_WIDE_INT inside of a SUBREG, which is an invalid transformation
    because a SUBREG relies on SUBREG_REG having non-VOIDmode but
    CONST_WIDE_INT has VOIDmode.

    replace_rtx already has code to deal with it, but it was doing
    it only for CONST_INTs.  The following patch does it also for
    VOIDmode CONST_DOUBLE or CONST_WIDE_INT.

    2022-04-22  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/105333
            * rtlanal.c (replace_rtx): Use simplify_subreg or
            simplify_unary_operation if CONST_SCALAR_INT_P rather than just
            CONST_INT_P.

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

    (cherry picked from commit 7092b7aea122a91824d048aeb23834cf1d19b1a1)


More information about the Gcc-bugs mailing list