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

            Bug ID: 88964
           Summary: [8/9 Regression] ICE in wide_int_to_tree_1, at
                    tree.c:1561
           Product: gcc
           Version: 8.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-9.0.0-alpha20190120 snapshot (r268107) ICEs when compiling the
following snippet reduced from gcc/testsuite/gfortran.dg/pr68251.f90 w/ -O3
-fno-tree-forwprop --param sccvn-max-alias-queries-per-access=1:

MODULE hfx_contract_block
  INTEGER, PARAMETER :: dp=8
CONTAINS
  SUBROUTINE
contract_block(ma_max,mb_max,mc_max,md_max,kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    REAL(KIND=dp) :: kbd(mb_max*md_max), kbc(mb_max*mc_max), &
      kad(ma_max*md_max), kac(ma_max*mc_max), pbd(mb_max*md_max), &
      pbc(mb_max*mc_max), pad(ma_max*md_max), pac(ma_max*mc_max), &
      prim(ma_max*mb_max*mc_max*md_max), scale
    CALL block_1_3_1_3(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    CALL block_1_3_1_4(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    CALL block_1_3_1_5(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
  END SUBROUTINE contract_block
  SUBROUTINE block_1_3_1_3(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    REAL(KIND=dp) :: kbd(3*3), kbc(3*1), kad(1*3), kac(1*1), pbd(3*3), &
      pbc(3*1), pad(1*3), pac(1*1), prim(1*3*1*3), scale
      DO md = 1,3
        DO mc = 1,1
          DO mb = 1,3
            DO ma = 1,1
              kac((mc-1)*1+ma) = kac((mc-1)*1+ma)-tmp*p_bd
            END DO
          END DO
        END DO
      END DO
  END SUBROUTINE block_1_3_1_3
  SUBROUTINE block_1_3_1_4(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    REAL(KIND=dp) :: kbd(3*4), kbc(3*1), kad(1*4), kac(1*1), pbd(3*4), &
      pbc(3*1), pad(1*4), pac(1*1), prim(1*3*1*4), scale
      DO md = 1,4
        DO mc = 1,1
          DO mb = 1,3
            kbc((mc-1)*3+mb) = kbc((mc-1)*3+mb) - ks_bc
          END DO
        END DO
      END DO
  END SUBROUTINE block_1_3_1_4
  SUBROUTINE block_1_3_1_5(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
    REAL(KIND=dp) :: kbd(3*5), kbc(3*1), kad(1*5), kac(1*1), pbd(3*5), &
      pbc(3*1), pad(1*5), pac(1*1), prim(1*3*1*5), scale
      DO md = 1,5
        DO mc = 1,1
          DO mb = 1,3
            DO ma = 1,1
              kac((mc-1)*1+ma) = kac((mc-1)*1+ma)-tmp*p_bd
            END DO
          END DO
        END DO
      END DO
  END SUBROUTINE block_1_3_1_5
END MODULE hfx_contract_block

% powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190120 -O3 -fno-tree-forwprop
--param sccvn-max-alias-queries-per-access=1 -c cn013jaw.f90
during GIMPLE pass: linterchange
cn013jaw.f90:4:0:

    4 |   SUBROUTINE
contract_block(ma_max,mb_max,mc_max,md_max,kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
      | 
internal compiler error: in wide_int_to_tree_1, at tree.c:1561
0x6befc2 wide_int_to_tree_1
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.c:1561
0x106439e build_int_cst(tree_node*, poly_int<1u, long>)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.c:1355
0x149f832 loop_cand::analyze_induction_var(tree_node*, tree_node*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/gimple-loop-interchange.cc:695
0x149fd58 loop_cand::analyze_carried_vars(loop_cand*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/gimple-loop-interchange.cc:752
0x14a2195 tree_loop_interchange::interchange(vec<data_reference*, va_heap,
vl_ptr>, vec<data_dependence_relation*, va_heap, vl_ptr>)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/gimple-loop-interchange.cc:1600
0x14a2dcf execute
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/gimple-loop-interchange.cc:2070

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

Reply via email to