GCC Bugzilla – Bug 7784
[3.2/3.3/3.4 regression] [Sparc] ICE in extract_insn, at recog.c:2148
Last modified: 2004-01-17 04:22:52 UTC
The compiler produces an unrecognizable insn when compiling the attached code Release: 3.2 Environment: System: SunOS scooby 5.9 Generic sun4u sparc SUNW,Sun-Blade-100 Architecture: sun4 host: sparc-sun-solaris2.9 build: sparc-sun-solaris2.9 target: sparc-sun-solaris2.9 configured with: ../gcc-3.2/configure --prefix=/opt/local --enable-threads How-To-Repeat: scooby> gcc -v -save-temps -c -mcpu=ultrasparc -O2 -I../../c95/sun4/ lines_hydro.c Reading specs from /opt/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2/specs Configured with: ../gcc-3.2/configure --prefix=/opt/local --enable-threads Thread model: posix gcc version 3.2 /opt/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2/cpp0 -lang-c -v -I../../c95/sun4/ -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -D__sparcv8 -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__WCHAR_TYPE__=long int -D__WINT_TYPE__=long int -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc lines_hydro.c lines_hydro.i GNU CPP version 3.2 (cpplib) (sparc ELF) ignoring nonexistent directory "/opt/local/sparc-sun-solaris2.9/include" ignoring duplicate directory "/opt/local/include" #include "..." search starts here: #include <...> search starts here: ../../c95/sun4 /usr/local/include /opt/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2/include /usr/include End of search list. /opt/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2/cc1 -fpreprocessed lines_hydro.i -quiet -dumpbase lines_hydro.c -mcpu=ultrasparc -O2 -version -o lines_hydro.s GNU CPP version 3.2 (cpplib) (sparc ELF) GNU C version 3.2 (sparc-sun-solaris2.9) compiled by GNU C version 3.2. lines_hydro.c: In function `lines_hydro': lines_hydro.c:410: unrecognizable insn: (insn 10013 6784 6786 (set (reg:SI 17 %l1) (mem/s:SI (plus:SI (plus:SI (reg/f:SI 21 %l5 [3828]) (reg:SI 20 %l4 [3830])) (const_int 4 [0x4])) [4 dense.eden+0 S8 A64])) -1 (nil) (nil)) lines_hydro.c:410: Internal compiler error in extract_insn, at recog.c:2148 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
Fix: Using a lower level of optimization or deleting -mcpu=ultrasparc works around the problem
State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed.
Responsible-Changed-From-To: unassigned->ebotcazou Responsible-Changed-Why: Investigating.
From: ebotcazou@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: target/7784 Date: 26 Mar 2003 07:48:15 -0000 CVSROOT: /cvs/gcc Module name: gcc Changes by: ebotcazou@gcc.gnu.org 2003-03-26 07:48:15 Modified files: gcc : ChangeLog reload.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.dg: ultrasp6.c Log message: PR target/7784 * reload.c (find_reloads_address): Handle (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for all base registers. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.17218&r2=1.17219 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/reload.c.diff?cvsroot=gcc&r1=1.210&r2=1.211 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2539&r2=1.2540 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/ultrasp6.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
From: ebotcazou@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: target/7784 Date: 26 Mar 2003 07:54:02 -0000 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: ebotcazou@gcc.gnu.org 2003-03-26 07:54:02 Modified files: gcc : ChangeLog reload.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.dg: ultrasp6.c Log message: PR target/7784 * reload.c (find_reloads_address): Handle (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for all base registers. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.365&r2=1.16114.2.366 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/reload.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.199.2.5&r2=1.199.2.6 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.120&r2=1.2261.2.121 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/ultrasp6.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.1.2.1
From: ebotcazou@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: target/7784 Date: 26 Mar 2003 07:58:49 -0000 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_2-branch Changes by: ebotcazou@gcc.gnu.org 2003-03-26 07:58:49 Modified files: gcc : ChangeLog reload.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.dg: ultrasp6.c Log message: PR target/7784 * reload.c (find_reloads_address): Handle (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for all base registers. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.13152.2.657.2.280&r2=1.13152.2.657.2.281 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/reload.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.178.2.4.2.4&r2=1.178.2.4.2.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.1672.2.166.2.117&r2=1.1672.2.166.2.118 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/ultrasp6.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=NONE&r2=1.1.4.1
State-Changed-From-To: analyzed->closed State-Changed-Why: Fixed. See http://gcc.gnu.org/ml/gcc-patches/2003-03/msg01656.html
From: uweigand@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: target/7784 Date: 29 Mar 2003 19:30:40 -0000 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_2-branch Changes by: uweigand@gcc.gnu.org 2003-03-29 19:30:40 Modified files: gcc : ChangeLog reload.c Log message: PR target/7784 * reload.c (maybe_memory_address_p): New function. (find_reloads_address): Use it instead of memory_address_p. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.13152.2.657.2.291&r2=1.13152.2.657.2.292 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/reload.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.178.2.4.2.5&r2=1.178.2.4.2.6