[Bug rtl-optimization/99085] [10 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 19 23:30:00 GMT 2021


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

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

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

commit r10-9478-ga7c4a70077ad7291f57663aef62d097018d28a10
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Mar 3 09:51:54 2021 +0100

    cfgrtl: Fix up fixup_partitions caused ICE [PR99085]

    fixup_partitions sometimes changes some basic blocks from hot partition to
    cold partition, in particular if after unreachable block removal or other
    optimizations a hot partition block is dominated by cold partition
block(s).
    It fixes up the edges and jumps on those edges, but when after reorder
    blocks and in rtl (non-cfglayout) mode that is clearly not enough, because
    it keeps the block order the same and so we can end up with more than
    1 hot/cold section transition in the same function.

    So, this patch fixes that up too.

    2021-03-03  Jakub Jelinek  <jakub@redhat.com>

            PR target/99085
            * cfgrtl.c (fixup_partitions): When changing some bbs from hot to
cold
            partitions, if in non-layout mode after reorder_blocks also move
            affected blocks to ensure a single partition transition.

            * gcc.dg/graphite/pr99085.c: New test.

    (cherry picked from commit 4ad5b1915d50cc39691487f58794d699c7900ace)


More information about the Gcc-bugs mailing list