Bug 7784 - [3.2/3.3/3.4 regression] [Sparc] ICE in extract_insn, at recog.c:2148
[3.2/3.3/3.4 regression] [Sparc] ICE in extract_insn, at recog.c:2148
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: target
3.2
: P3 normal
: ---
Assigned To: Eric Botcazou
: ice-on-valid-code
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2002-08-30 18:46 UTC by p.van-hoof
Modified: 2004-01-17 04:22 UTC (History)
2 users (show)

See Also:
Host: sparc-sun-solaris2.9
Target: sparc-sun-solaris2.9
Build: sparc-sun-solaris2.9
Known to work:
Known to fail:
Last reconfirmed:


Attachments
lines_hydro.i.bz2 (10.68 KB, application/octet-stream)
2003-05-21 15:17 UTC, p.van-hoof
Details

Note You need to log in before you can comment on or make changes to this bug.
Description p.van-hoof 2002-08-30 18:46:01 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.
Comment 1 p.van-hoof 2002-08-30 18:46:01 UTC
Fix:
Using a lower level of optimization or deleting -mcpu=ultrasparc
works around the problem
Comment 2 Eric Botcazou 2003-03-17 10:04:17 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed.
Comment 3 Eric Botcazou 2003-03-17 17:57:49 UTC
Responsible-Changed-From-To: unassigned->ebotcazou
Responsible-Changed-Why: Investigating.
Comment 4 Eric Botcazou 2003-03-26 07:48:15 UTC
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
 

Comment 5 Eric Botcazou 2003-03-26 07:54:02 UTC
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
 

Comment 6 Eric Botcazou 2003-03-26 07:58:49 UTC
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
 
Comment 7 Eric Botcazou 2003-03-26 08:31:03 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed. See http://gcc.gnu.org/ml/gcc-patches/2003-03/msg01656.html
Comment 8 Ulrich Weigand 2003-03-29 19:30:40 UTC
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