public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
@ 2021-02-13  7:59 asolokha at gmx dot com
  2021-02-15  8:23 ` [Bug rtl-optimization/99085] " rguenth at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: asolokha at gmx dot com @ 2021-02-13  7:59 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 99085
           Summary: [11 Regression] ICE: verify_flow_info failed (error:
                    multiple hot/cold transitions found)
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-unknown-linux-gnu

gcc-11.0.0-alpha20210207 snapshot (g:3d912941f29c27b2ac7c79b9e7cb2f1150e75758)
ICEs when compiling the following testcase, reduced from
gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c, w/ -O2
-fgraphite-identity -fsel-sched-pipelining -fselective-scheduling2:

void
foo (int m, int n, int o, int i)
{
  long double a2[m];
  int c2[n][o];
  int j, k;

  while (i < m)
    a2[i++] = 13.132L;

  for (j = 0; j < n; j++)
    for (k = 0; k < o; k++)
      c2[j][k] = 1;

  __builtin_abort ();
}

% x86_64-unknown-linux-gnu-gcc-11.0.0 -O2 -fgraphite-identity
-fsel-sched-pipelining -fselective-scheduling2 -c euiuvzbp.c
euiuvzbp.c: In function 'foo':
euiuvzbp.c:16:1: error: multiple hot/cold transitions found (bb 15)
   16 | }
      | ^
euiuvzbp.c:16:1: error: multiple hot/cold transitions found (bb 11)
during RTL pass: stack
euiuvzbp.c:16:1: internal compiler error: verify_flow_info failed
0x965f92 verify_flow_info()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/cfghooks.c:269
0x97e2f9 checking_verify_flow_info
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/cfghooks.h:212
0x97e2f9 commit_edge_insertions()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/cfgrtl.c:2115
0xd71ff0 convert_regs
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/reg-stack.c:3270
0xd71ff0 reg_to_stack
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/reg-stack.c:3374
0xd71ff0 rest_of_handle_stack_regs
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/reg-stack.c:3429
0xd71ff0 execute
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210207/work/gcc-11-20210207/gcc/reg-stack.c:3461

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
@ 2021-02-15  8:23 ` rguenth at gcc dot gnu.org
  2021-02-15  8:29 ` [Bug rtl-optimization/99085] [10/11 " jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-02-15  8:23 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |11.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10/11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
  2021-02-15  8:23 ` [Bug rtl-optimization/99085] " rguenth at gcc dot gnu.org
@ 2021-02-15  8:29 ` jakub at gcc dot gnu.org
  2021-02-15  8:30 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-02-15  8:29 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
           Priority|P3                          |P2
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
            Summary|[11 Regression] ICE:        |[10/11 Regression] ICE:
                   |verify_flow_info failed     |verify_flow_info failed
                   |(error: multiple hot/cold   |(error: multiple hot/cold
                   |transitions found)          |transitions found)
   Last reconfirmed|                            |2021-02-15

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I can reproduce the ICE also with gcc 10:
/usr/src/gcc-10/obj12/gcc/cc1 -quiet -O2 -fgraphite-identity
-fsel-sched-pipelining -fselective-scheduling2 /tmp/pr99085.c
/tmp/pr99085.c: In function ‘foo’:
/tmp/pr99085.c:16:1: error: multiple hot/cold transitions found (bb 15)
   16 | }
      | ^
/tmp/pr99085.c:16:1: error: multiple hot/cold transitions found (bb 11)
during RTL pass: stack
/tmp/pr99085.c:16:1: internal compiler error: verify_flow_info failed
but can't with gcc 9.  As it is with graphite, can't bisect (easily) myself
though.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10/11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
  2021-02-15  8:23 ` [Bug rtl-optimization/99085] " rguenth at gcc dot gnu.org
  2021-02-15  8:29 ` [Bug rtl-optimization/99085] [10/11 " jakub at gcc dot gnu.org
@ 2021-02-15  8:30 ` jakub at gcc dot gnu.org
  2021-02-15 16:11 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-02-15  8:30 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.0                        |10.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10/11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
                   ` (2 preceding siblings ...)
  2021-02-15  8:30 ` jakub at gcc dot gnu.org
@ 2021-02-15 16:11 ` jakub at gcc dot gnu.org
  2021-03-03  8:52 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-02-15 16:11 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 50187
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50187&action=edit
gcc11-pr99085.patch

Untested fix.
The fixup_partitions code can move some bbs from hot to cold partitions (if
they are dominated by cold bbs, either before or after unreachable bb removal),
but
when not in cfglayout mode after reorder partitions it isn't sufficient to
adjust the edges and corresponding jumps, but we also need to move the bb in
the bb chain.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10/11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
                   ` (3 preceding siblings ...)
  2021-02-15 16:11 ` jakub at gcc dot gnu.org
@ 2021-03-03  8:52 ` cvs-commit at gcc dot gnu.org
  2021-03-03  8:57 ` [Bug rtl-optimization/99085] [10 " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-03  8:52 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:4ad5b1915d50cc39691487f58794d699c7900ace

commit r11-7471-g4ad5b1915d50cc39691487f58794d699c7900ace
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.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
                   ` (4 preceding siblings ...)
  2021-03-03  8:52 ` cvs-commit at gcc dot gnu.org
@ 2021-03-03  8:57 ` jakub at gcc dot gnu.org
  2021-03-19 23:30 ` cvs-commit at gcc dot gnu.org
  2021-03-20  8:08 ` jakub at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-03  8:57 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10/11 Regression] ICE:     |[10 Regression] ICE:
                   |verify_flow_info failed     |verify_flow_info failed
                   |(error: multiple hot/cold   |(error: multiple hot/cold
                   |transitions found)          |transitions found)

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk (so far).

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
                   ` (5 preceding siblings ...)
  2021-03-03  8:57 ` [Bug rtl-optimization/99085] [10 " jakub at gcc dot gnu.org
@ 2021-03-19 23:30 ` cvs-commit at gcc dot gnu.org
  2021-03-20  8:08 ` jakub at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-19 23:30 UTC (permalink / raw)
  To: gcc-bugs

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)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug rtl-optimization/99085] [10 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
  2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
                   ` (6 preceding siblings ...)
  2021-03-19 23:30 ` cvs-commit at gcc dot gnu.org
@ 2021-03-20  8:08 ` jakub at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-20  8:08 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 10.3 too.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-03-20  8:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-13  7:59 [Bug rtl-optimization/99085] New: [11 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found) asolokha at gmx dot com
2021-02-15  8:23 ` [Bug rtl-optimization/99085] " rguenth at gcc dot gnu.org
2021-02-15  8:29 ` [Bug rtl-optimization/99085] [10/11 " jakub at gcc dot gnu.org
2021-02-15  8:30 ` jakub at gcc dot gnu.org
2021-02-15 16:11 ` jakub at gcc dot gnu.org
2021-03-03  8:52 ` cvs-commit at gcc dot gnu.org
2021-03-03  8:57 ` [Bug rtl-optimization/99085] [10 " jakub at gcc dot gnu.org
2021-03-19 23:30 ` cvs-commit at gcc dot gnu.org
2021-03-20  8:08 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).