https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79315
Bug ID: 79315 Summary: ICE while building SPEC CPU 2006 FP with -Ofast -ftree-parallelize-loops Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Target: aarch64-linux-gnu I don't know if this is a GCC 7 regression or not. Compiling wrf in SPEC CPU 2006 FP with -Ofast -ftree-parallelize-loops produces an ICE about location references block not in block tree. Reduced example: SUBROUTINE wsm32D(t, & w, & den, & p, & delz, & its,& ite, & kts, & kte & ) REAL, DIMENSION( its:ite , kts:kte ), & INTENT(INOUT) :: & t REAL, DIMENSION( ims:ime , kms:kme ), & INTENT(IN ) :: w, & den, & p, & delz REAL, DIMENSION( its:ite , kts:kte ) :: & qs, & xl, & work1, & work2, & qs0, & n0sfac diffus(x,y) = 8.794e-5*x**1.81/y diffac(a,b,c,d,e) = d*a*a/(xka(c,d)*rv*c*c)+1./(e*diffus(c,b)) venfac(a,b,c) = (viscos(b,c)/diffus(b,a))**(.3333333) & /viscos(b,c)**(.5)*(den0/c)**0.25 do loop = 1,loops xa=-dldt/rv do k = kts, kte do i = its, ite tr=ttp/t(i,k) if(t(i,k).lt.ttp) then qs(i,k) =psat*(tr**xa)*exp(xb*(1.-tr)) endif qs0(i,k) =psat*(tr**xa)*exp(xb*(1.-tr)) enddo do i = its, ite if(t(i,k).ge.t0c) then work1(i,k) = diffac(xl(i,k),p(i,k),t(i,k),den(i,k),qs(i,k)) endif work2(i,k) = venfac(p(i,k),t(i,k),den(i,k)) enddo enddo enddo ! big loops END SUBROUTINE wsm32D This produces: t.f90:1:0: SUBROUTINE wsm32D(t, & Error: location references block not in block tree __builtin_powf _224 = __builtin_powf (_38, 1.809999942779541015625e+0); t.f90:1:0: Error: location references block not in block tree __builtin_powf _229 = __builtin_powf (pretmp_227, 1.809999942779541015625e+0); t.f90:1:0: internal compiler error: verify_gimple failed 0xc37737 verify_gimple_in_cfg(function*, bool) ../../gcc/gcc/tree-cfg.c:5266 0xb14063 execute_function_todo ../../gcc/gcc/passes.c:1966 0xb151d3 execute_todo ../../gcc/gcc/passes.c:2016 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.