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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2017-09-18
                 CC|                            |spop at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
     Ever confirmed|0                           |1

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
The cases I've seen this ICE hitting is when we have a conditional loop like
one resulting from unswitching of

SUBROUTINE rk_addtend_dry ( t_tend, t_tendf, t_save, rk_step, &
                            h_diabatic, mut, msft, ide, jde,  &
                            ims,ime, jms,jme, kms,kme,        &
                            its,ite, jts,jte, kts,kte)
   IMPLICIT NONE
   INTEGER ,  INTENT(IN   ) :: ide, jde, ims, ime, jms, jme, kms, kme, &
                               its, ite, jts, jte, kts, kte
   INTEGER ,  INTENT(IN   ) :: rk_step
   REAL , DIMENSION( ims:ime , kms:kme, jms:jme  ), &
       INTENT(INOUT) :: t_tend, t_tendf
   REAL , DIMENSION( ims:ime , kms:kme, jms:jme  ) , &
       INTENT(IN   ) ::  t_save, h_diabatic
   REAL , DIMENSION( ims:ime , jms:jme ) , INTENT(IN   ) :: mut, msft
   INTEGER :: i, j, k
   DO j = jts,MIN(jte,jde-1)
   DO k = kts,kte-1
   DO i = its,MIN(ite,ide-1)
     IF(rk_step == 1)t_tendf(i,k,j) = t_tendf(i,k,j) +  t_save(i,k,j)
      t_tend(i,k,j) =  t_tend(i,k,j) +  t_tendf(i,k,j)/msft(i,j)  &
                                     +  mut(i,j)*h_diabatic(i,k,j)/msft(i,j)
   ENDDO
   ENDDO
   ENDDO
END SUBROUTINE rk_addtend_dry

not sure if we are supposed to handle this or not.  But it seems like
in case ISL gets confused enough we end up with an empty scheduling domain
which we assert on.

The "easy" way is proagating the error up along build_original_schedule ->
build_poly_scop but eventually we can detect this earlier?

Reply via email to