Crosstoolchain for the Cell. I got an internal compiler error (segmentation fault). I'm usign gcc 4.3.0 . Command: /opt/ia32/cell/toolchain/2008-03-28/bin/../bin/spu-gcc -W -Wall -Winline -Wno-main -I. -I ../../../include -I ../../../include/spu -I ../../include/jpc -I /scratch/local/rbertran/cellbench//src/lib/misc -I /scratch/local/rbertran/cellbench//src/lib/sync/spu -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -DSPU -DFLOAT_MODE -DSIMD_EN -DEN_INTERLEAVING -O5 -c jpc_qmfb_synthesize.c jpc_qmfb_synthesize.c: In function 'jpc_ns_invlift_row': jpc_qmfb_synthesize.c:1775: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make: *** [jpc_qmfb_synthesize.o] Error 1 [Exit 2 ] Command verbose: /opt/ia32/cell/toolchain/2008-03-28/bin/../bin/spu-gcc -W -Wall -Winline -Wno-main -I. -I ../../../include -I ../../../include/spu -I ../../include/jpc -I /scratch/local/rbertran/cellbench//src/lib/misc -I /scratch/local/rbertran/cellbench//src/lib/sync/spu -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -DSPU -DFLOAT_MODE -DSIMD_EN -DEN_INTERLEAVING -O5 -c jpc_qmfb_analyze.c -v Using built-in specs. Target: spu Configured with: /home/users/rbertran/scratch-local/cache/gcc-4.3.0/configure --prefix=/opt/ia32/cell/toolchain/2008-03-28/spu --target=spu --with-newlib --program-prefix=spu- --disable-nls --enable-languages=c,c++ --with-as=/opt/ia32/cell/toolchain/2008-03-28/spu/bin/spu-as --with-ld=/opt/ia32/cell/toolchain/2008-03-28/spu/bin/spu-ld Thread model: single gcc version 4.3.0 (GCC) COLLECT_GCC_OPTIONS='-W' '-Wall' '-Winline' '-Wno-main' '-I.' '-I' '../../../include' '-I' '../../../include/spu' '-I' '../../include/jpc' '-I' '/scratch/local/rbertran/cellbench//src/lib/misc' '-I' '/scratch/local/rbertran/cellbench//src/lib/sync/spu' '-I' '/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include' '-I' '/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include' '-DSPU' '-DFLOAT_MODE' '-DSIMD_EN' '-DEN_INTERLEAVING' '-O5' '-c' '-v' /opt/ia32/cell/toolchain/2008-03-28/spu/libexec/gcc/spu/4.3.0/cc1 -quiet -v -I. -I ../../../include -I ../../../include/spu -I ../../include/jpc -I /scratch/local/rbertran/cellbench//src/lib/misc -I /scratch/local/rbertran/cellbench//src/lib/sync/spu -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -DSPU -DFLOAT_MODE -DSIMD_EN -DEN_INTERLEAVING jpc_qmfb_analyze.c -quiet -dumpbase jpc_qmfb_analyze.c -auxbase jpc_qmfb_analyze -O5 -W -Wall -Winline -Wno-main -version -o /tmp/cc9ZNCcX.s ignoring nonexistent directory "/opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/../../../../spu/sys-include" ignoring nonexistent directory "/scratch/local/rbertran/cellbench//src/lib/misc" ignoring nonexistent directory "/scratch/local/rbertran/cellbench//src/lib/sync/spu" ignoring duplicate directory "/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include" as it is a non-system directory that duplicates a system directory ignoring duplicate directory "/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include" as it is a non-system directory that duplicates a system directory #include "..." search starts here: #include <...> search starts here: . ../../../include ../../../include/spu ../../include/jpc /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/include /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/include-fixed /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/../../../../spu/include End of search list. GNU C (GCC) version 4.3.0 (spu) compiled by GNU C version 4.1.2 20070925 (Red Hat 4.1.2-33), GMP version 4.2.2, MPFR version 2.3.0-p2. GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129342 Compiler executable checksum: 573e1376cb959e61371bea7b2f291bfa jpc_qmfb_analyze.c: In function 'jpc_ns_fwdlift_row': jpc_qmfb_analyze.c:1810: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. [Exit 1 ] GDB debug: gdb --args /opt/ia32/cell/toolchain/2008-03-28/spu/libexec/gcc/spu/4.3.0/cc1 -quiet -v -I. -I ../../../include -I ../../../include/spu -I ../../include/jpc -I /scratch/local/rbertran/cellbench//src/lib/misc -I /scratch/local/rbertran/cellbench//src/lib/sync/spu -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -DSPU -DFLOAT_MODE -DSIMD_EN -DEN_INTERLEAVING jpc_qmfb_analyze.c -quiet -dumpbase jpc_qmfb_analyze.c -auxbase jpc_qmfb_analyze -O5 -W -Wall -Winline -Wno-main -version -o /tmp/cco5lHmh.s GNU gdb Red Hat Linux (6.6-45.fc8rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /opt/ia32/cell/toolchain/2008-03-28/spu/libexec/gcc/spu/4.3.0/cc1 -quiet -v -I. -I ../../../include -I ../../../include/spu -I ../../include/jpc -I /scratch/local/rbertran/cellbench//src/lib/misc -I /scratch/local/rbertran/cellbench//src/lib/sync/spu -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -I /opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include -DSPU -DFLOAT_MODE -DSIMD_EN -DEN_INTERLEAVING jpc_qmfb_analyze.c -quiet -dumpbase jpc_qmfb_analyze.c -auxbase jpc_qmfb_analyze -O5 -W -Wall -Winline -Wno-main -version -o /tmp/cco5lHmh.s ignoring nonexistent directory "/opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/../../../../spu/sys-include" ignoring nonexistent directory "/scratch/local/rbertran/cellbench//src/lib/misc" ignoring nonexistent directory "/scratch/local/rbertran/cellbench//src/lib/sync/spu" ignoring duplicate directory "/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include" as it is a non-system directory that duplicates a system directory ignoring duplicate directory "/opt/ia32/cell/toolchain/2008-03-28/bin/../spu/include" as it is a non-system directory that duplicates a system directory #include "..." search starts here: #include <...> search starts here: . ../../../include ../../../include/spu ../../include/jpc /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/include /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/include-fixed /opt/ia32/cell/toolchain/2008-03-28/spu/lib/gcc/spu/4.3.0/../../../../spu/include End of search list. GNU C (GCC) version 4.3.0 (spu) compiled by GNU C version 4.1.2 20070925 (Red Hat 4.1.2-33), GMP version 4.2.2, MPFR version 2.3.0-p2. GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129342 Compiler executable checksum: 573e1376cb959e61371bea7b2f291bfa Program received signal SIGSEGV, Segmentation fault. set_bb_for_stmt (t=0x0, bb=0xb77c5bb8) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-cfg.c:2670 2670 if (TREE_CODE (t) == PHI_NODE) Missing separate debuginfos, use: debuginfo-install glibc.i686 gmp.i386 mpfr.i386 (gdb) where #0 set_bb_for_stmt (t=0x0, bb=0xb77c5bb8) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-cfg.c:2670 #1 0x0823f124 in bsi_insert_after (i=0xbfe23020, t=0x0, m=BSI_NEW_STMT) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-cfg.c:2781 #2 0x08241811 in bsi_insert_on_edge_immediate (e=0xb7808258, stmt=0x0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-cfg.c:3048 #3 0x08313cc0 in vect_create_data_ref_ptr (stmt=<value optimized out>, at_loop=0xb778ca20, offset=0x0, initial_address=0xbfe231b0, ptr_incr=0xbfe231ac, only_init=0 '\0', type=0x0, inv_p=0xbfe231b7 "") at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-vect-transform.c:1105 #4 0x0831b94c in vectorizable_load (stmt=0xb7cd6e70, bsi=0xbfe232fc, vec_stmt=0xbfe231f8, slp_node=0x0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-vect-transform.c:5774 #5 0x0831e602 in vect_transform_stmt (stmt=0xb7cd6e70, bsi=0xbfe232fc, strided_store=0xbfe2331f "", slp_node=0xb77c5bb8) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-vect-transform.c:6228 #6 0x0831f9de in vect_transform_loop (loop_vinfo=0xa4c93d0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-vect-transform.c:7547 #7 0x083228c3 in vectorize_loops () at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-vectorizer.c:2691 #8 0x081cb124 in execute_one_pass (pass=0x852fae0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/passes.c:1122 #9 0x081cb2c7 in execute_pass_list (pass=0x852fae0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/passes.c:1175 #10 0x081cb2da in execute_pass_list (pass=0x852f9a0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/passes.c:1176 #11 0x081cb2da in execute_pass_list (pass=0x852f1a0) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/passes.c:1176 #12 0x0826e719 in tree_rest_of_compilation (fndecl=0xb7e17780) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/tree-optimize.c:404 #13 0x083645b8 in cgraph_expand_function (node=0xb7e3dce4) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/cgraphunit.c:1157 #14 0x08365f0d in cgraph_optimize () at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/cgraphunit.c:1220 #15 0x08058047 in c_write_global_declarations () at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/c-decl.c:8080 #16 0x082391d6 in toplev_main (argc=36, argv=0xbfe23594) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/toplev.c:1055 #17 0x080a6042 in main (argc=Cannot access memory at address 0x0 ) at /home/users/rbertran/scratch-local/cache/gcc-4.3.0/gcc/main.c:35 Sorry if I'm missing some other information that you need. I'm new submitting bugs to gcc. If you need something else, let me know.
Created attachment 15420 [details] Temp file generated when -save-temps flag is set
This might be a gc bug with the back-end that shows up with the vectorizer.
Created attachment 15425 [details] Temp file generated when -save-temp flag is set
Created attachment 15426 [details] File generated using the flag -fdump-tree-vect
Created attachment 15427 [details] File generated using the flag -fdump-tree-vect and -ftree-vectorizer-verbose=9999
*** Bug 35822 has been marked as a duplicate of this bug. ***
I am testing the following patch: Index: tree-vect-transform.c =================================================================== --- tree-vect-transform.c (revision 132478) +++ tree-vect-transform.c (working copy) @@ -1102,8 +1103,12 @@ vect_create_data_ref_ptr (tree stmt, str new_temp = vect_create_addr_base_for_vector_ref (stmt, &new_stmt_list, offset, loop); pe = loop_preheader_edge (loop); - new_bb = bsi_insert_on_edge_immediate (pe, new_stmt_list); - gcc_assert (!new_bb); + if (new_stmt_list) + { + new_bb = bsi_insert_on_edge_immediate (pe, new_stmt_list); + gcc_assert (!new_bb); + } + *initial_address = new_temp; /* Create: p = (vectype *) initial_base */ Ira
Subject: Bug 35821 Author: irar Date: Wed Apr 9 10:55:11 2008 New Revision: 134136 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134136 Log: PR tree-optimization/35821 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that NEW_STMT_LIST is not NULL. Added: branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/vect/pr35821-altivec.c branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/vect/pr35821-spu.c Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/testsuite/ChangeLog branches/gcc-4_3-branch/gcc/tree-vect-transform.c
Subject: Bug 35821 Author: irar Date: Thu Apr 10 05:51:59 2008 New Revision: 134162 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134162 Log: PR tree-optimization/35821 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that NEW_STMT_LIST is not NULL. Added: trunk/gcc/testsuite/gcc.dg/vect/pr35821-altivec.c trunk/gcc/testsuite/gcc.dg/vect/pr35821-spu.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-transform.c
Fixed.