------- Comment #7 from rguenther at suse dot de 2009-03-01 10:58 ------- Subject: Re: internal compiler error: verify_stmts failed
On Sun, 1 Mar 2009, irar at il dot ibm dot com wrote: > ------- Comment #6 from irar at il dot ibm dot com 2009-03-01 10:34 ------- > Reduced it a bit more: > > subroutine adw_trajsp (F_u,i0,in,j0,jn) > implicit none > real F_u(*) > integer i0,in,j0,jn > integer n,i,j > real*8 xsin(i0:in,j0:jn) > !$omp parallel do private(xsin) > do j=j0,jn > do i=i0,in > xsin(i,j) = sqrt(F_u(n)) > end do > end do > !$omp end parallel do > return > end > > on x86_64-suse-linux with > gfortran -c -fopenmp -fcray-pointer -fexceptions -O2 -ftree-vectorize. > > When we vectorize a function call, we replace the RHS of the stmt with > "something harmless": D.1692_41 = __builtin_sqrtf (pretmp.45_79); is replaced > with D.1692_41 = 0.0;. We don't remove the original stmt from the EH table. > The > question is it OK to vectorize function that are in EH table? Well, we should transfer the EH region information to the vectorized statement in this case. Which might be tricky ... do we have a link to the original statement when producing the new one? Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39318