This is the mail archive of the 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 middle-end/33449] [4.3 regression] ICE for fortran code with -O2 -ftree-vectorize

------- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-09-17 08:39 -------
I can reproduce that on x86_64-linux with trunk rev. 128442. Severity set to
critical, as this is LAPACK.

Program received signal SIGSEGV, Segmentation fault.
vect_get_vec_defs_for_stmt_copy (dt=0x7fff713d44c0, 
    vec_oprnds0=0x7fff713d44b8, vec_oprnds1=0x7fff713d44b0)
    at ../../../trunk/gcc/tree.h:210
210     DEF_VEC_P(tree);
(gdb) bt
#0  vect_get_vec_defs_for_stmt_copy (dt=0x7fff713d44c0, 
    vec_oprnds0=0x7fff713d44b8, vec_oprnds1=0x7fff713d44b0)
    at ../../../trunk/gcc/tree.h:210
#1  0x0000000000aacca6 in vectorizable_operation (stmt=0x2ac339ca5600, 
    bsi=0x7fff713d4660, vec_stmt=0x7fff713d4528, slp_node=0x0)
    at ../../../trunk/gcc/tree-vect-transform.c:3987
#2  0x0000000000ab95d4 in vect_transform_stmt (stmt=0x2ac339ca5600, 
    bsi=0x7fff713d4660, strided_store=0x7fff713d46cf "", slp_node=0x0)
    at ../../../trunk/gcc/tree-vect-transform.c:6095
#3  0x0000000000aba733 in vect_transform_loop (loop_vinfo=0x1091460)
    at ../../../trunk/gcc/tree-vect-transform.c:7334
#4  0x000000000080c28e in vectorize_loops ()
    at ../../../trunk/gcc/tree-vectorizer.c:2507
#5  0x000000000064e261 in execute_one_pass (pass=0xe22180)
    at ../../../trunk/gcc/passes.c:1115
#6  0x000000000064e440 in execute_pass_list (pass=0xe22180)
    at ../../../trunk/gcc/passes.c:1168
#7  0x000000000064e455 in execute_pass_list (pass=0xe21fa0)
    at ../../../trunk/gcc/passes.c:1169
#8  0x000000000064e455 in execute_pass_list (pass=0xe213a0)
    at ../../../trunk/gcc/passes.c:1169
#9  0x00000000007286e8 in tree_rest_of_compilation (fndecl=0x2ac339c14340)
    at ../../../trunk/gcc/tree-optimize.c:404

Reduced testcase is:

$ cat foo.f
      INTEGER            M, I
      INTEGER            IBLOCK(*)
      DO JBLK = 1, 10
         DO I = 1, 10
           M = M + 1
           W(M) = -WORK(I)
           IBLOCK(M) = 0
         END DO
      END DO
$ gfortran -O2 -ftree-vectorize foo.f
foo.f: In function ?dlarre?:
foo.f:1: internal compiler error: Segmentation fault


fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
          Component|fortran                     |middle-end
     Ever Confirmed|0                           |1
  GCC build triplet|                            |x86_64-linux
   GCC host triplet|suse-linux-x86_64           |x86_64-linux
 GCC target triplet|                            |x86_64-linux
           Keywords|                            |ice-on-valid-code
      Known to fail|                            |4.3.0
      Known to work|                            |4.2.2
   Last reconfirmed|0000-00-00 00:00:00         |2007-09-17 08:39:44
               date|                            |
            Summary|ice for fortran code with - |[4.3 regression] ICE for
                   |O2 -ftree-vectorize         |fortran code with -O2 -
                   |                            |ftree-vectorize

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