Bug 59841

Summary: [4.9 Regression] internal compiler error: verify_ssa failed
Product: gcc Reporter: H.J. Lu <hjl.tools>
Component: middle-endAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: rguenther
Priority: P3    
Version: 4.9.0   
Target Milestone: 4.9.0   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed: 2014-01-16 00:00:00

Description H.J. Lu 2014-01-16 12:43:26 UTC
On Linux/x86-64, revision 206628 gave

statpt.fppized.f: In function 'sigx':
statpt.fppized.f:5269:0: error: definition in block 210 does not dominate use in block 552
       SUBROUTINE SIGX(LNR)
 ^
for SSA_NAME: _1225 in statement:
# VUSE <.MEM_2866>
_2767 = MEM[(double[0:D.10235] *)_1087][_1225];
statpt.fppized.f:5269:0: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [/tmp/ccT1tRiz.ltrans13.ltrans.o] Error 1
lto-wrapper: make returned 2 exit status
/usr/local/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status
specmake: *** [gamess] Error 1

when compiling 416.gamess in SPEC CPU 2006 with:

gfortran  -O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin  -DSPEC_CPU_LP64        aldeci.fppized.o algnci.fppized.o basecp.fppized.o basext.o bashuz.o bashz2.o basn21.fppized.o basn31.o bassto.fppized.o blas.fppized.o ccaux.o ccsdt.fppized.o chgpen.fppized.o cisgrd.fppized.o cosmo.fppized.o cphf.fppized.o cpmchf.o cprohf.fppized.o ddi.fppized.o delocl.fppized.o dft.fppized.o dftaux.fppized.o dftexc.fppized.o dftfun.o dftgrd.fppized.o dftint.fppized.o dgeev.o dmulti.fppized.o drc.fppized.o dummygetenv.fppized.o ecp.fppized.o ecpder.fppized.o ecplib.fppized.o ecppot.o efdrvr.fppized.o efelec.o efgrd2.fppized.o efgrda.fppized.o efgrdb.fppized.o efgrdc.fppized.o efinp.fppized.o efinta.fppized.o efintb.fppized.o efpaul.fppized.o efpcm.fppized.o efpcov.fppized.o eigen.fppized.o eomcc.fppized.o ffield.fppized.o frfmt.fppized.o fsodci.fppized.o gamess.fppized.o globop.fppized.o gradex.fppized.o grd1.fppized.o grd2a.fppized.o grd2b.o grd2c.fppized.o guess.fppized.o gugdga.fppized.o gugdgb.fppized.o gugdm.fppized.o gugdm2.fppized.o gugdrt.fppized.o gugem.fppized.o gugsrt.fppized.o gvb.fppized.o hess.fppized.o hss1a.fppized.o hss1b.fppized.o hss2a.fppized.o hss2b.fppized.o inputa.fppized.o inputb.fppized.o inputc.fppized.o int1.fppized.o int2a.fppized.o int2b.o iolib.fppized.o lagran.fppized.o local.fppized.o loccd.fppized.o locpol.fppized.o mccas.fppized.o mcjac.o mcpinp.fppized.o mcpint.fppized.o mcplib.o mcqdpt.fppized.o mcqdwt.o mcqud.fppized.o mcscf.fppized.o mctwo.fppized.o morokm.fppized.o mp2.fppized.o mp2ddi.fppized.o mp2grd.fppized.o mpcdat.o mpcgrd.fppized.o mpcint.fppized.o mpcmol.fppized.o mpcmsc.fppized.o mthlib.fppized.o nameio.fppized.o nmr.fppized.o olix.o ordint.fppized.o ormas1.fppized.o parley.fppized.o pcm.fppized.o pcmcav.o pcmcv2.fppized.o pcmder.fppized.o pcmdis.fppized.o pcmief.fppized.o pcmpol.fppized.o pcmvch.fppized.o prpel.fppized.o prplib.fppized.o prppop.fppized.o qeigen.fppized.o qfmm.fppized.o qmfm.fppized.o qmmm.fppized.o qrel.fppized.o raman.fppized.o rhfuhf.fppized.o rxncrd.fppized.o ryspol.o scflib.fppized.o scfmi.fppized.o scrf.fppized.o sobrt.fppized.o soffac.fppized.o solib.fppized.o sozeff.fppized.o statpt.fppized.o surf.fppized.o symorb.fppized.o symslc.fppized.o tdhf.fppized.o trans.fppized.o trfdm2.fppized.o trnstn.fppized.o trudge.fppized.o umpddi.fppized.o unport.fppized.o vibanl.fppized.o vscf.fppized.o zheev.fppized.o zmatrx.fppized.o             -lm        -o gamess
Comment 1 H.J. Lu 2014-01-16 14:17:01 UTC
It is caused by r206599.
Comment 2 Richard Biener 2014-01-16 14:24:46 UTC
Should be fixed by

2014-01-15  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/59822
        * tree-vect-stmts.c (hoist_defs_of_uses): New function.
        (vectorizable_load): Use it to hoist defs of uses of invariant
        loads out of the loop.