http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51285
Bug #: 51285 Summary: [4.7 Regression] internal compiler error: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: joost.vandevond...@mat.ethz.ch gcc trunk (4.7.0 20111122) fails on the testcase below with gfortran -O3 bug.f90 bug.f90: In function ‘tiny_find’: bug.f90:25:0: internal compiler error: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:422 > cat bug.f90 SUBROUTINE smm_dnn_4_10_10_1_1_2_1(A,B,C) REAL(KIND=KIND(0.0D0)) :: C(4,10), B(10,10), A(4,10) DO j= 1 , 10 , 2 DO i= 1 , 4 , 1 DO l= 1 , 10 , 1 C(i+0,j+0)=C(i+0,j+0)+A(i+0,l+0)*B(l+0,j+0) C(i+0,j+1)=C(i+0,j+1)+A(i+0,l+0)*B(l+0,j+1) ENDDO ENDDO ENDDO END SUBROUTINE SUBROUTINE smm_dnn_4_10_10_6_4_1_1(A,B,C) REAL(KIND=KIND(0.0D0)) :: C(4,10), B(10,10), A(4,10) DO l= 1 , 10 , 1 DO j= 1 , 10 , 1 C(i+0,j+0)=C(i+0,j+0)+A(i+0,l+0)*B(l+0,j+0) ENDDO ENDDO END SUBROUTINE FUNCTION TEST(X,A,B,C,N) RESULT(res) DO i=1,N CALL X(A,B,C) ENDDO END FUNCTION PROGRAM tiny_find INTEGER, PARAMETER :: M=4,N=10,K=10,Nmin=2 REAL :: timing(6,M,N,K), best_time, test INTERFACE SUBROUTINE X(A,B,C) END SUBROUTINE END INTERFACE PROCEDURE(X) :: smm_dnn_4_10_10_1_1_2_1 PROCEDURE(X) :: smm_dnn_4_10_10_6_4_1_1 Niter=MAX(1,CEILING(MIN(100000000.0D0,1*gflop/flops))) DO imin=1,Nmin timing(1,1,2,1)= MIN(timing(1,1,2,1),& TEST(smm_dnn_4_10_10_1_1_2_1,A,B,C,Niter)) timing(6,4,1,1)= MIN(timing(6,4,1,1),& TEST(smm_dnn_4_10_10_6_4_1_1,A,B,C,Niter)) write(6,'(4I4,F12.6,F12.3)') & 6,4,5,1,flops*Niter/gflop/timing(6,4,5,1) DO i=1,M DO j=1,N DO l=1,K IF (timing(iloop,i,j,l)< best_time) THEN ENDIF ENDDO ENDDO ENDDO ENDDO END PROGRAM tiny_find