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

            Bug ID: 93439
           Summary: [9/10 Regression] ICE in gimple_duplicate_bb, at
                    tree-cfg.c:6277
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gfortran-10.0.0-alpha20200119 snapshot
(g:3684bbb022cd75da55e1457673f269980aa12cdf) ICEs when compiling the following
testcase, reduced from gcc/testsuite/gfortran.dg/pr68251.f90, w/ -O2
-floop-parallelize-all -floop-unroll-and-jam -ftree-parallelize-loops=2:

module ai
  integer, parameter :: dp = 8
contains
  subroutine qu(ja, nq, en, p5)
    real(kind = dp) :: nq(ja), en(ja), p5(ja)
    call tl(ja, nq, en, p5)
  end subroutine qu

  subroutine tl(ja, nq, en, p5)
    real(kind = dp) :: nq(9), en(9 * ja), p5(3 * ja)
    do mc = 1, ja
       do mb = 1, 9
          do ma = 1, 3
             p5((mc - 1) * 3 + ma) = p5((mc - 1) * 3 + ma) - 1
          end do
       end do
    end do
  end subroutine tl
end module ai

% powerpc-e300c3-linux-gnu-gfortran-10.0.0-alpha20200119 -O2
-floop-parallelize-all -floop-unroll-and-jam -ftree-parallelize-loops=2 -c
q5isrzrh.f90
during GIMPLE pass: unrolljam
f951: internal compiler error: in gimple_duplicate_bb, at tree-cfg.c:6277
0x69ed73 gimple_duplicate_bb
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-cfg.c:6277
0xa02382 duplicate_block(basic_block_def*, edge_def*, basic_block_def*,
copy_bb_data*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/cfghooks.c:1089
0xa02b57 copy_bbs(basic_block_def**, unsigned int, basic_block_def**,
edge_def**, unsigned int, edge_def**, loop*, basic_block_def*, bool)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/cfghooks.c:1357
0xa0eeef duplicate_loop_to_header_edge(loop*, edge_def*, unsigned int,
simple_bitmap_def*, edge_def*, vec<edge_def*, va_heap, vl_ptr>*, int)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/cfgloopmanip.c:1302
0x1012cd8 gimple_duplicate_loop_to_header_edge(loop*, edge_def*, unsigned int,
simple_bitmap_def*, edge_def*, vec<edge_def*, va_heap, vl_ptr>*, int)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-ssa-loop-manip.c:933
0xa11e9c loop_version(loop*, void*, basic_block_def**, profile_probability,
profile_probability, profile_probability, profile_probability, bool)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/cfgloopmanip.c:1702
0x1013421 tree_transform_and_unroll_loop(loop*, unsigned int, edge_def*,
tree_niter_desc*, void (*)(loop*, void*), void*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-ssa-loop-manip.c:1278
0x1692a08 tree_loop_unroll_and_jam
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/gimple-loop-jam.c:59

(While my target here is powerpc, the ICE is not target-specific.)

Reply via email to