This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/71252] [7 Regression] ICE: verify_ssa failed : definition in block 7 does not dominate use in block 6


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]