Bug 11634

Summary: [3.3/3.4 regression] [hppa] ICE in verify_local_live_at_start, at flow.c:555
Product: gcc Reporter: Debian GCC Maintainers <debian-gcc>
Component: rtl-optimizationAssignee: roger
Status: RESOLVED FIXED    
Severity: critical CC: cjones, gcc-bugs
Priority: P2 Keywords: ice-on-valid-code, patch
Version: 3.3   
Target Milestone: 3.3.3   
Host: hppa-linux Target: hppa-linux
Build: hppa-linux Known to work:
Known to fail: Last reconfirmed: 2003-07-23 05:41:49
Attachments: preprocessed source
Reduced to 1113 lines
Reduced to 30 lines

Description Debian GCC Maintainers 2003-07-22 21:00:03 UTC
[forwarded from http://bugs.debian.org/201550]

regression from 3.2, rechecked with 3.3 CVS 20030626 and HEAD 20030722

b$ gcc -c -O2 toto.i 
../../../src/H5Tconv.c: In function `H5T_conv_vlen':
../../../src/H5Tconv.c:2372: internal compiler error: in
verify_local_live_at_start, at flow.c:575
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Comment 1 Debian GCC Maintainers 2003-07-22 21:00:42 UTC
Created attachment 4453 [details]
preprocessed source
Comment 2 Andrew Pinski 2003-07-23 05:40:14 UTC
Created attachment 4462 [details]
Reduced to 1113 lines
Comment 3 Andrew Pinski 2003-07-23 05:41:49 UTC
I have reduced it down to 1113 lines for the mainline (20030723).
Comment 4 Mark Mitchell 2003-10-16 09:24:06 UTC
Postponed until GCC 3.3.3.
Comment 5 Falk Hueffner 2003-11-16 03:05:43 UTC
Created attachment 5143 [details]
Reduced to 30 lines
Comment 6 janis187 2003-11-24 22:51:03 UTC
The regression reported in PR 11634 still exists in the 3.3-branch
but was fixed on the mainline with this patch:

2003-09-03  Mostafa Hagog  <mustafa@il.ibm.com>

        * gcse.c (replace_one_set): New function.
        (pre_insert_copy_insn): Change the order of copying
        to make copy propagation discover additional PRE opportunities.

The test case demonstrates another problem For about 8% of the cross
compilers that were built for my regression hunt there was an ICE
in common_handle_option.  After the patch that fixes the ICE in                
verify_local_live_at_start, the compiler sometimes (about 10% of the           
time) acts as if random options had been specified.
Comment 7 janis187 2003-11-25 00:08:19 UTC
The intermittent ICEs in common_handle_option and use of random options also
happens with a compiler built for i686-unknown-linux-gnu.  There seem to be more
of these after September 20.  These happen for the short test case; with the
hppa cross compiler they happen with the short test case and also with the
original test case.
Comment 8 roger 2003-11-30 20:07:29 UTC
I've posted a patch for the underlying cause of the original problem:
http://gcc.gnu.org/ml/gcc-patches/2003-11/msg02193.html
Mostafa's GCSE change just hides the problem on mainline but doesn't
cure it.
Comment 9 Zack Weinberg 2003-12-02 00:26:24 UTC
Roger: I think you're right that split_all_insns_noflow will eventually
disappear, and so I will approve your patch for mainline.  Ask Gabriel about 3.3.
Comment 10 Gabriel Dos Reis 2003-12-02 00:43:43 UTC
Subject: Re:  [3.3/3.4 regression] [hppa] ICE in verify_local_live_at_start, at flow.c:555

"zack at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes:

| Roger: I think you're right that split_all_insns_noflow will eventually
| disappear, and so I will approve your patch for mainline.  Ask
| Gabriel about 3.3. 

OK there too.

Thanks,

-- Gaby
Comment 11 GCC Commits 2003-12-02 01:44:02 UTC
Subject: Bug 11634

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	sayle@gcc.gnu.org	2003-12-02 01:43:58

Modified files:
	gcc            : ChangeLog recog.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.dg: 20031201-2.c 

Log message:
	PR optimization/11634
	* recog.c (split_insn): Factor test of INSN_P and handling of
	set_noop_p out of here into the two callers.
	(split_all_insns): Add INSN_P test and set_noop_p handling here.
	If deleting a no-op set after reload that has a REG_UNUSED note,
	mark the basic block as changed and recalculate life information.
	(split_all_insns_noflow): Add INSN_P test and set_noop_p handling
	here.
	
	* gcc.dg/20031201-2.c: New test case.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.1888&r2=2.1889
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/recog.c.diff?cvsroot=gcc&r1=1.188&r2=1.189
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3217&r2=1.3218
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20031201-2.c.diff?cvsroot=gcc&r1=NONE&r2=1.1

Comment 12 GCC Commits 2003-12-02 04:36:13 UTC
Subject: Bug 11634

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-branch
Changes by:	sayle@gcc.gnu.org	2003-12-02 04:36:09

Modified files:
	gcc            : ChangeLog recog.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.dg: 20031201-2.c 

Log message:
	PR optimization/11634
	* recog.c (split_insn): Factor test of INSN_P and handling of
	set_noop_p out of here into the two callers.
	(split_all_insns): Add INSN_P test and set_noop_p handling here.
	If deleting a no-op set after reload that has a REG_UNUSED note,
	mark the basic block as changed and recalculate life information.
	(split_all_insns_noflow): Add INSN_P test and set_noop_p handling
	here.
	
	* gcc.dg/20031201-2.c: New test case.

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.815&r2=1.16114.2.816
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/recog.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.168.2.2&r2=1.168.2.3
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.320&r2=1.2261.2.321
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20031201-2.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.1.2.1

Comment 13 Andrew Pinski 2003-12-02 15:38:50 UTC
Fixed applied for 3.3.3.
Comment 14 Andrew Pinski 2004-05-10 19:30:42 UTC
*** Bug 15368 has been marked as a duplicate of this bug. ***