https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89182
Bug ID: 89182 Summary: [8/9 Regression] [graphite] ICE in extract_affine, at graphite-sese-to-poly.c:280 Product: gcc Version: 9.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-alpha20190127 snapshot (r268327) ICEs when compiling the following testcase reduced from gcc/testsuite/gfortran.dg/pr68251.f90 w/ -m32 -O3 (-Ofast) -fgraphite-identity --param max-completely-peeled-insns=8: MODULE hfx_contract_block INTEGER, PARAMETER :: dp=8 CONTAINS SUBROUTINE contract_block(mb_max,mc_max,kbc,ks_bc) REAL(KIND=dp) :: kbc(mb_max*mc_max), ks_bc CALL block_1_2_1_2(kbc,ks_bc) CALL block_1_2_1_3(kbc,ks_bc) CALL block_1_2_1_3(kbc,ks_bc) END SUBROUTINE contract_block SUBROUTINE block_1_2_1_2(kbc,ks_bc) REAL(KIND=dp) :: kbc(2*1), ks_bc DO mc = 1,2 DO mb = 1,2 kbc((mc-1)*2+mb) = ks_bc END DO END DO END SUBROUTINE block_1_2_1_2 SUBROUTINE block_1_2_1_3(kbc,ks_bc) REAL(KIND=dp) :: kbc(2*1), ks_bc DO md = 1,3 DO mc = 1,1 DO mb = 1,2 kbc((mc-1)*2+mb) = kbc((mc-1)*2+mb) - ks_bc END DO END DO END DO END SUBROUTINE block_1_2_1_3 END MODULE hfx_contract_block % powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190127 -m32 -O3 -fgraphite-identity --param max-completely-peeled-insns=8 -c vlehb6sh.f90 during GIMPLE pass: graphite vlehb6sh.f90:4:0: 4 | SUBROUTINE contract_block(mb_max,mc_max,kbc,ks_bc) | internal compiler error: in extract_affine, at graphite-sese-to-poly.c:280 0x14e8572 extract_affine /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:280 0x14e8337 extract_affine /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:293 0x14e8609 extract_affine /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:259 0x14e8d16 add_loop_constraints /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:788 0x14e8b78 add_loop_constraints /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:749 0x14e9187 build_iteration_domains /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:850 0x14e979f build_poly_scop(scop*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite-sese-to-poly.c:1213 0x14da111 graphite_transform_loops() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:406 0x14da6a0 graphite_transforms /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:476 0x14da6a0 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/graphite.c:553 (While my target here is powerpc, the ICE is not target-specific.)