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

Reply via email to