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).