[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 --- Comment #7 from Andrew Pinski --- *** Bug 110525 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 Andrew Pinski changed: What|Removed |Added CC||19373742 at buaa dot edu.cn --- Comment #6 from Andrew Pinski --- *** Bug 110517 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 Andrew Pinski changed: What|Removed |Added CC||gs...@t-online.de --- Comment #5 from Andrew Pinski --- *** Bug 99347 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 Andrew Pinski changed: What|Removed |Added CC||zhendong.su at inf dot ethz.ch --- Comment #4 from Andrew Pinski --- *** Bug 101086 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 --- Comment #3 from Arseny Solokha --- Testcase from #c2 doesn't fail for me anymore w/ the current trunk snapshot (as of r265361), but the following one does: int py, up; void ro (int *tr, int et) { while (et < 1) { int s7 = !!*tr ? 0 : py; if (s7 != 0) { } else { up /= 2; if (py * py == 0) tr = } ++et; } } % x86_64-unknown-linux-gnu-gcc-9.0.0-alpha20181021 -O1 -fschedule-insns -fsel-sched-pipelining -fselective-scheduling -fvar-tracking-assignments -fno-if-conversion -fno-tree-loop-im -w -c ebmjprna.c during RTL pass: sched1 ebmjprna.c: In function 'ro': ebmjprna.c:23:1: internal compiler error: in create_block_for_bookkeeping, at sel-sched.c:4563 23 | } | ^ 0x65a9e8 create_block_for_bookkeeping /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:4563 0x65a9e8 find_place_for_bookkeeping /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:4700 0x65a9e8 generate_bookkeeping_insn /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:4800 0x65a9e8 move_op_at_first_insn /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6077 0xc9016c code_motion_path_driver /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6669 0xc90516 code_motion_process_successors /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6356 0xc90516 code_motion_path_driver /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6622 0xc90516 code_motion_process_successors /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6356 0xc90516 code_motion_path_driver /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6622 0xc93292 move_op /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:6714 0xc93292 move_exprs_to_boundary /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:5237 0xc93292 schedule_expr_on_boundary /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:5450 0xc951cc fill_insns /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:5592 0xc951cc schedule_on_fences /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7366 0xc951cc sel_sched_region_2 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7504 0xc96a56 sel_sched_region_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7546 0xc9822e sel_sched_region(int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7647 0xc9822e sel_sched_region(int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7632 0xc99141 run_selective_scheduling() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sel-sched.c:7733 0xc78edd rest_of_handle_sched /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/sched-rgn.c:3718
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 --- Comment #2 from Arseny Solokha --- Here's another snippet. gcc-8.0.0-alpha20180422 snapshot (r259553) w/ r259563 applied ICEs when compiling it for x86_64 w/ -O2 (-O3, -Os) -ftree-slp-vectorize -fschedule-insns -fsel-sched-pipelining -fselective-scheduling -fvar-tracking-assignments -fno-tree-pre -fno-tree-dce -fno-tree-ch -fno-move-loop-invariants: int ce, jq; int vc (void) { int g4 = 0; return g4; } void sg (void) { while (jq < 2) { int tv[] = { 1, 0, 0, 0, 0, }; if (jq == 0) { } else while (ce > 0) ce = 0; jq = vc (); } } % x86_64-pc-linux-gnu-gcc-8.0.0-alpha20180422 -O2 -ftree-slp-vectorize -fschedule-insns -fsel-sched-pipelining -fselective-scheduling -fvar-tracking-assignments -fno-tree-pre -fno-tree-dce -fno-tree-ch -fno-move-loop-invariants -w -c gbhm444y.c during RTL pass: sched1 gbhm444y.c: In function 'sg': gbhm444y.c:27:1: internal compiler error: in create_block_for_bookkeeping, at sel-sched.c:4563 } ^ 0x64e07f create_block_for_bookkeeping /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:4563 0x64e07f find_place_for_bookkeeping /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:4700 0x64e07f generate_bookkeeping_insn /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:4800 0x64e07f move_op_at_first_insn /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6077 0xc6774c code_motion_path_driver /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6669 0xc67ad6 code_motion_process_successors /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6356 0xc67ad6 code_motion_path_driver /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6622 0xc67ad6 code_motion_process_successors /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6356 0xc67ad6 code_motion_path_driver /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6622 0xc67ad6 code_motion_process_successors /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6356 0xc67ad6 code_motion_path_driver /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6622 0xc68172 move_op /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:6714 0xc68172 move_exprs_to_boundary /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:5237 0xc68172 schedule_expr_on_boundary /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:5450 0xc6c20c fill_insns /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:5592 0xc6c20c schedule_on_fences /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:7366 0xc6c20c sel_sched_region_2 /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:7504 0xc6d958 sel_sched_region_1 /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:7546 0xc6e1de sel_sched_region(int) /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:7647 0xc6f0e8 run_selective_scheduling() /var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180422/work/gcc-8-20180422/gcc/sel-sched.c:7733
[Bug rtl-optimization/85410] ICE in create_block_for_bookkeeping, at sel-sched.c:4563
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85410 Andrey Belevantsev changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-04-24 CC||abel at gcc dot gnu.org, ||amonakov at gcc dot gnu.org, ||jakub at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Andrey Belevantsev --- Confirmed. We hit an assert saying that the split block (which is supposed to be empty) doesn't have any bb notes. But it may have a NOTE_INSN_DELETED now because there is the code emitting that when the bb only has debug insns. It is easy to relax the assert and properly merge bb notes list in this case. So far so good, but then the df_verify assert hits late in IRA. It is because of the code that was added to rotate bb indexes to avoid debug/non-debug differences around sel-sched.c:4585, there if (MAY_HAVE_DEBUG_INSNS) we do the long list of sel-sched data structures exchanges but nobody takes care of df structures. There I can do a df_bb_refs_record for the changed bbs, but still the reg_chain structures are bogus and we ICE in df_reg_chain_verify_unmarked. At this point I'm unclear what to do, thoughts?