This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/71252] [7 Regression] ICE: verify_ssa failed : definition in block 7 does not dominate use in block 6
- From: "Joost.VandeVondele at mat dot ethz.ch" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 25 May 2016 05:59:08 +0000
- Subject: [Bug tree-optimization/71252] [7 Regression] ICE: verify_ssa failed : definition in block 7 does not dominate use in block 6
- Auto-submitted: auto-generated
- References: <bug-71252-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71252
--- Comment #6 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> ---
reduced testcase
> cat bug.f90
MODULE xc_pbe
INTEGER, PARAMETER :: dp=8
PRIVATE
PUBLIC :: pbe_lda_info, pbe_lsd_info, pbe_lda_eval, pbe_lsd_eval
CONTAINS
SUBROUTINE pbe_lsd_eval(rho_set,deriv_set,grad_deriv,pbe_params)
INTEGER, INTENT(in) :: grad_deriv
INTEGER :: handle, npoints, param, stat
LOGICAL :: failure
REAL(kind=dp) :: epsilon_drho, epsilon_rho, &
scale_ec, scale_ex
REAL(kind=dp), DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndr, &
e_ndr_ndr, e_ndr_ra, e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndrb, &
e_ndrb_ndrb, e_ndrb_rb, e_ra, e_ra_ra, e_ra_rb, e_rb, e_rb_rb, &
norm_drho, norm_drhoa, norm_drhob, rhoa, rhob
IF (.NOT. failure) THEN
CALL pbe_lsd_calc(&
rhoa=rhoa, rhob=rhob, norm_drho=norm_drho, norm_drhoa=norm_drhoa,&
norm_drhob=norm_drhob, e_0=e_0, e_ra=e_ra, e_rb=e_rb,&
e_ra_ndra=e_ndra_ra,&
e_rb_ndrb=e_ndrb_rb, e_ndr_ndr=e_ndr_ndr,&
e_ndra_ndra=e_ndra_ndra, e_ndrb_ndrb=e_ndrb_ndrb, e_ndr=e_ndr,&
e_ndra=e_ndra, e_ndrb=e_ndrb, e_ra_ra=e_ra_ra, &
e_ra_rb=e_ra_rb, e_rb_rb=e_rb_rb, e_ra_ndr=e_ndr_ra,&
e_rb_ndr=e_ndr_rb,&
grad_deriv=grad_deriv, npoints=npoints, &
epsilon_rho=epsilon_rho,epsilon_drho=epsilon_drho,&
param=param,scale_ec=scale_ec,scale_ex=scale_ex)
END IF
END SUBROUTINE pbe_lsd_eval
SUBROUTINE pbe_lsd_calc(rhoa, rhob, norm_drho, norm_drhoa, norm_drhob,&
e_0, e_ra, e_rb, e_ra_ndra, e_rb_ndrb, e_ndr_ndr,&
e_ndra_ndra, e_ndrb_ndrb, e_ndr,&
e_ndra, e_ndrb, e_ra_ra, e_ra_rb, e_rb_rb, e_ra_ndr, e_rb_ndr,&
grad_deriv,npoints,epsilon_rho,epsilon_drho,param,scale_ec,scale_ex)
REAL(kind=dp), DIMENSION(*), INTENT(in) :: rhoa, rhob, norm_drho, &
norm_drhoa, norm_drhob
REAL(kind=dp), DIMENSION(*), INTENT(inout) :: e_0, e_ra, e_rb, e_ra_ndra, &
e_rb_ndrb, e_ndr_ndr, e_ndra_ndra, e_ndrb_ndrb, e_ndr, e_ndra, e_ndrb, &
e_ra_ra, e_ra_rb, e_rb_rb, e_ra_ndr, e_rb_ndr
INTEGER, INTENT(in) :: grad_deriv, npoints
REAL(kind=dp), INTENT(in) :: epsilon_rho, epsilon_drho
INTEGER, INTENT(in) :: param
REAL(kind=dp), INTENT(in) :: scale_ec, scale_ex
REAL(kind=dp) :: epsilon_c_unifrhoarhob, epsilon_c_unifrhob, &
t7, t70, t705, t708, t71, t711, t72, t726, t73, t733, t736, t74, t745, &
trhob, trhobnorm_drho, trhobrhob
SELECT CASE(grad_deriv)
CASE default
DO ii=1,npoints
IF (my_rho>epsilon_rho) THEN
IF (grad_deriv>=2.OR.grad_deriv==-2) THEN
alpha_c1rhoa = alpha_crhoa
f1rhoa = frhoa
t745 = -0.4e1_dp * t77 * t245 * chirhoarhoa + (-0.2e1_dp * t194 *
&
t212 + t626 * t596 * t628 * t34 / 0.2e1_dp -
e_c_u_0rhoarhoa) * f * &
t733 * t254 + 0.4e1_dp * t736 * t254 + 0.12e2_dp * t85 * t79
* t682 &
+ 0.4e1_dp * t85 * t244 * chirhoarhoa
epsilon_c_unifrhoarhoa = e_c_u_0rhoarhoa + (0.2e1_dp * t215 * &
t233 - t674 * t644 * t676 * t52 / 0.2e1_dp) * f * t82 +
alpha_crhoa &
* f1rhoa * t82 - 0.4e1_dp * t240 * t246 + alpha_c1rhoa *
frhoa * t82&
+ t745
Arhoarhoa = 0.2e1_dp * t820 * t822 * t828 - t101 * t281 * (&
0.3e1_dp * t102 * t285 * phirhoarhoa) * t107 - t851 * t289 *
t828 * &
t321 + 0.2e1_dp * t310 * t936 * t321 * t876 - t310 * t313 *
t959
e_ra_ra(ii) = e_ra_ra(ii)+&
scale_ex * (0.2e1_dp * ex_unif_a1rhoa * Fx_a + &
my_rho * (epsilon_c_unifrhoarhoa + 0.6e1_dp * t858 * t294 *
phi1rhoa +&
- t110 * t967 * t879))
t1674 = t1630 + t1632 + t1635 + t1638 + t1640 + 0.2e1_dp * A1rhob
&
* Arhobrhob + 0.8e1_dp * t944 * trhob * A1rhob + 0.12e2_dp *
t953 * &
scale_ex * (0.2e1_dp * ex_unif_a * &
Fx_anorm_drhoa + 0.2e1_dp * t350 * Fx_anorm_drhoa + 0.2e1_dp
* t140 &
* (-0.8e1_dp * t1000 * t1001 * s_anorm_drhoa + 0.2e1_dp *
t346 * &
s_anorm_drhoa * s_arhoa + 0.2e1_dp * t346 * s_a * (-t336 *
t131 * &
kf_arhoa / 0.2e1_dp - t129 * t341 / 0.2e1_dp))) / 0.2e1_dp
END IF
END IF
END DO
END SELECT
END SUBROUTINE pbe_lsd_calc
END MODULE xc_pbe
> gfortran -c -O3 -ffast-math -march=westmere bug.f90
bug.f90:69:20:
- t110 * t967 * t879))
1
Warning: Extension: Unary operator following arithmetic operator (use
parentheses) at (1)
bug.f90:6:0:
SUBROUTINE pbe_lsd_eval(rho_set,deriv_set,grad_deriv,pbe_params)
Error: definition in block 6 follows the use
for SSA_NAME: _245 in statement:
_148 = _245 * 2.0e+0;
bug.f90:6:0: internal compiler error: verify_ssa failed
0xdbe8fc verify_ssa(bool, bool)
../../gcc/gcc/tree-ssa.c:1039
0xad114d execute_function_todo
../../gcc/gcc/passes.c:1971
0xad1b0b execute_todo
../../gcc/gcc/passes.c:2016
Please submit a full bug report,
with preprocessed source if appropriate.
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/data/vjoost/gnu/gcc_trunk/install
--enable-languages=c,c++,fortran --disable-multilib --enable-plugins
--enable-lto --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160525 (experimental) [trunk revision 236689] (GCC)
COLLECT_GCC_OPTIONS='-c' '-O3' '-ffast-math' '-march=westmere' '-v'
/data/vjoost/gnu/gcc_trunk/install/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/f951
bug.f90 -quiet -dumpbase bug.f90 -march=westmere -auxbase bug -O3 -version
-ffast-math -fintrinsic-modules-path
/data/vjoost/gnu/gcc_trunk/install/lib/gcc/x86_64-pc-linux-gnu/7.0.0/finclude
-o /tmp/cc5rSJGS.s
GNU Fortran (GCC) version 7.0.0 20160525 (experimental) [trunk revision 236689]
(x86_64-pc-linux-gnu)
compiled by GNU C version 4.7.2 20120816 (prerelease) [gcc-4_7-branch
revision 190437], GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl
version 0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU Fortran2008 (GCC) version 7.0.0 20160525 (experimental) [trunk revision
236689] (x86_64-pc-linux-gnu)
compiled by GNU C version 4.7.2 20120816 (prerelease) [gcc-4_7-branch
revision 190437], GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl
version 0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096