[Bug target/106091] [11/12/13 Regression] during RTL pass: swaps ICE: verify_flow_info failed: missing REG_EH_REGION note at the end of bb 69 with -fnon-call-exceptions

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Aug 2 03:56:29 GMT 2022


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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Kewen Lin <linkw@gcc.gnu.org>:

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

commit r11-10186-gcd014105121275d1b226cb494277663d9181ab01
Author: Kewen Lin <linkw@linux.ibm.com>
Date:   Mon Jul 25 21:29:14 2022 -0500

    rs6000: Preserve REG_EH_REGION when replacing load/store [PR106091]

    As test case in PR106091 shows, rs6000 specific pass swaps
    doesn't preserve the reg_note REG_EH_REGION when replacing
    some load insn at the end of basic block, it causes the
    flow info verification to fail unexpectedly.  Since memory
    reference rtx may trap, this patch is to ensure we copy
    REG_EH_REGION reg_note while replacing swapped aligned load
    or store.

            PR target/106091

    gcc/ChangeLog:

            * config/rs6000/rs6000-p8swap.c (replace_swapped_aligned_store):
Copy
            REG_EH_REGION when replacing one store insn having it.
            (replace_swapped_aligned_load): Likewise.

    gcc/testsuite/ChangeLog:

            * gcc.target/powerpc/pr106091.c: New test.

    (cherry picked from commit f4286601933406142b46693660f7f4b682cb50a5)


More information about the Gcc-bugs mailing list