https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83852
Bug ID: 83852 Summary: [8 Regression] ICE in sel_redirect_edge_and_branch, at sel-sched-ir.c:5644 on 32-bit BE powerpc targets Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu, powerpcspe-*-linux-gnu gcc-8.0.0-alpha20180114 snapshot (r256677) ICEs when compiling the following snippet w/ -O2 -fselective-scheduling -fno-if-conversion -fno-tree-dse: long long int uo; unsigned int vt; void r5 (long long int h8, long long int pu) { short int wj; long long int *mh = h8; for (wj = 0; wj < 3; ++wj) { int oq; long long int ns, xf; h8 += 2; oq = !!h8 && !!wj; ++uo; vt ^= oq + uo; ns = !!uo && !!vt; xf = (h8 != 0) ? mh : 1; pu += ns < xf; } for (pu = 0; pu < 1; ++pu) { int *sc; sc = (int *)&pu; *sc = 0; } } % powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20180114 -O2 -fselective-scheduling -fno-if-conversion -fno-tree-dse -w -c dii05jbd.c during RTL pass: sched1 dii05jbd.c: In function 'r5': dii05jbd.c:31:1: internal compiler error: in sel_redirect_edge_and_branch, at sel-sched-ir.c:5644 } ^ 0xbeaf73 sel_redirect_edge_and_branch(edge_def*, basic_block_def*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched-ir.c:5644 0xbebea9 maybe_tidy_empty_bb /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched-ir.c:3796 0xbec05b tidy_control_flow(basic_block_def*, bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched-ir.c:3833 0xbec718 sel_remove_insn(rtx_insn*, bool, bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched-ir.c:3970 0xbec8fe return_nop_to_pool(rtx_insn*, bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched-ir.c:1062 0xbfb4c8 remove_temp_moveop_nops /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:4995 0xbfb4c8 schedule_expr_on_boundary /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:5470 0xbff0d1 fill_insns /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:5587 0xc00f0e schedule_on_fences /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:7361 0xc00f0e sel_sched_region_2 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:7499 0xc03711 sel_sched_region_1 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:7541 0xc03711 sel_sched_region(int) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:7642 0xc03de1 run_selective_scheduling() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sel-sched.c:7718 0xbdabd4 rest_of_handle_sched /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sched-rgn.c:3715 0xbdabd4 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/sched-rgn.c:3825