[Bug tree-optimization/31762] New: ICE in tree-dfa.c:791 with -ftree-loop-linear (and -O1 -ffast-math)

jb at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Apr 29 17:23:00 GMT 2007


When compiling the testcase below (reduced from the air benchmark of the
polyhedron benchmark suite) with "gfortran air-fvsplty2.f90 -ftree-loop-linea
r -O1 -ffast-math -c" there is an ICE, backtrace:

Program received signal SIGSEGV, Segmentation fault.
remove_referenced_var (var=0xb7cee284) at ../../trunk/gcc/tree-dfa.c:791
791       ggc_free (*loc);
(gdb) bt
#0  remove_referenced_var (var=0xb7cee284) at ../../trunk/gcc/tree-dfa.c:791
#1  0x083d7449 in remove_unused_locals ()
    at ../../trunk/gcc/tree-ssa-live.c:518
#2  0x0828b5cc in execute_function_todo (data=0x4003)
    at ../../trunk/gcc/passes.c:865
#3  0x0828b2ac in do_per_function (callback=0x828b400 <execute_function_todo>, 
    data=0x4003) at ../../trunk/gcc/passes.c:757
#4  0x0828b373 in execute_todo (flags=16387) at ../../trunk/gcc/passes.c:935
#5  0x0828b85b in execute_one_pass (pass=0x87dae00)
    at ../../trunk/gcc/passes.c:1080
#6  0x0828ba07 in execute_pass_list (pass=0x87dae00)
    at ../../trunk/gcc/passes.c:1110
#7  0x0828ba1a in execute_pass_list (pass=0x87dac00)
    at ../../trunk/gcc/passes.c:1111
#8  0x0836dc49 in tree_rest_of_compilation (fndecl=0xb7cd1c80)
    at ../../trunk/gcc/tree-optimize.c:406
#9  0x084db561 in cgraph_expand_function (node=0xb7cd1d80)
    at ../../trunk/gcc/cgraphunit.c:1016
#10 0x084dd966 in cgraph_optimize () at ../../trunk/gcc/cgraphunit.c:1085
#11 0x080ad55f in gfc_be_parse_file (set_yydebug=0)
    at ../../trunk/gcc/fortran/f95-lang.c:309
#12 0x0830a683 in toplev_main (argc=16, argv=0xbfa0bec4)
    at ../../trunk/gcc/toplev.c:1051
#13 0x080f05e2 in main (argc=Cannot access memory at address 0x8
) at ../../trunk/gcc/main.c:35


Here is the (partially reduced) testcase:

      SUBROUTINE FVSPLTY2

      PARAMETER (NX=150,NY=150)
      DIMENSION DY(NX,33) , ALY(30) , NPY(30)
      DIMENSION GP1(NX,NY) , GM1(NX,NY) , GP1y(30,NY) , GM1y(30,NY)
      DIMENSION GP2(NX,NY) , GM2(NX,NY) , GP2y(30,NY) , GM2y(30,NY)
      DIMENSION GP3(NX,NY) , GM3(NX,NY) , GP3y(30,NY) , GM3y(30,NY)
      DIMENSION GP4(NX,NY) , GM4(NX,NY) , GP4y(30,NY) , GM4y(30,NY)
      DIMENSION GV2(NX,NY) , DYP2(30,NY) , DYM2(30,NY)
      DIMENSION GV3(NX,NY) , DYP3(30,NY) , DYM3(30,NY)
      DIMENSION GV4(NX,NY) , DYP4(30,NY) , DYM4(30,NY)
      COMMON /YD1   / GP1 , GM1 , GP2 , GM2 , GP3 , GM3 , GP4 , GM4 ,   &
     &                GP1y , GM1y , GP2y , GM2y , GP3y , GM3y , GP4y ,  &
     &                GM4y , GV2 , GV3 , GV4 , DYP2 , DYM2 , DYP3 ,     &
     &                DYM3 , DYP4 , DYM4 , DY , NPY , ALY , NDY , MXPx
      DO jk = 1 , MXPx
         jmax = 0
         jmin = 1
         DO i = 1 , NDY
            jmax = jmax + NPY(i) + 1
!
! INITIALIZE
!
            GP1y(i,jk) = 0.
            GM1y(i,jk) = 0.
            GP2y(i,jk) = 0.
            GM2y(i,jk) = 0.
            GP3y(i,jk) = 0.
            GM3y(i,jk) = 0.
            GP4y(i,jk) = 0.
            GM4y(i,jk) = 0.
            DYP2(i,jk) = 0.
            DYM2(i,jk) = 0.
            DYP3(i,jk) = 0.
            DYM3(i,jk) = 0.
            DYP4(i,jk) = 0.
            DYM4(i,jk) = 0.
            DO k = 0 , NPY(i)
               GP1y(i,jk) = GP1y(i,jk) + DY(jmax,k+1)*GP1(jk,ik)
               GM1y(i,jk) = GM1y(i,jk) + DY(jmin,k+1)*GM1(jk,ik)
               GP2y(i,jk) = GP2y(i,jk) + DY(jmax,k+1)*GP2(jk,ik)
               GM2y(i,jk) = GM2y(i,jk) + DY(jmin,k+1)*GM2(jk,ik)
               GM3y(i,jk) = GM3y(i,jk) + DY(jmin,k+1)*GM3(jk,ik)
               GP4y(i,jk) = GP4y(i,jk) + DY(jmax,k+1)*GP4(jk,ik)
               GM4y(i,jk) = GM4y(i,jk) + DY(jmin,k+1)*GM4(jk,ik)
            ENDDO
            GP1y(i,jk) = GP1y(i,jk)*ALY(i)
            GM1y(i,jk) = GM1y(i,jk)*ALY(i)
            GP2y(i,jk) = GP2y(i,jk)*ALY(i)
            GM2y(i,jk) = GM2y(i,jk)*ALY(i)
            GP3y(i,jk) = GP3y(i,jk)*ALY(i)
            GM3y(i,jk) = GM3y(i,jk)*ALY(i)
            GP4y(i,jk) = GP4y(i,jk)*ALY(i)
            GM4y(i,jk) = GM4y(i,jk)*ALY(i)
            DYP2(i,jk) = DYP2(i,jk)*ALY(i)
            DYM2(i,jk) = DYM2(i,jk)*ALY(i)
            DYP3(i,jk) = DYP3(i,jk)*ALY(i)
            DYM3(i,jk) = DYM3(i,jk)*ALY(i)
            DYP4(i,jk) = DYP4(i,jk)*ALY(i)
            DYM4(i,jk) = DYM4(i,jk)*ALY(i)
            jmin = jmin + NPY(i) + 1
         ENDDO
      ENDDO

    END

Compiler version: gcc version 4.3.0 20070429 (experimental)


-- 
           Summary: ICE in tree-dfa.c:791 with -ftree-loop-linear (and -O1 -
                    ffast-math)
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jb at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31762



More information about the Gcc-bugs mailing list