Bug 24952 - ICE: RTL check: expected code 'set' or 'clobber', have 'unspec' in try_combine, at combine.c:2898
Summary: ICE: RTL check: expected code 'set' or 'clobber', have 'unspec' in try_combi...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.1.0
: P3 normal
Target Milestone: 4.2.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-checking, ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2005-11-20 09:20 UTC by Andreas Jaeger
Modified: 2006-02-24 19:37 UTC (History)
2 users (show)

See Also:
Host: powerpc64-linux-gnu
Target: powerpc64-linux-gnu
Build: powerpc64-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Jaeger 2005-11-20 09:20:11 UTC
Running the GCC testsuite I see the following ICE:

Executing on host: /abuild/aj/gcc/gcc/xgcc -B/abuild/aj/gcc/gcc/ /aj-cvs/gcc-svn/branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/vmx/3c-01a.c   -O1  -malt
ivec -mabi=altivec -std=gnu99 -fno-show-column -S  -m64 -o 3c-01a.s    (timeout = 300)
/aj-cvs/gcc-svn/branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/vmx/3c-01a.c: In function 'f':
/aj-cvs/gcc-svn/branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/vmx/3c-01a.c:1450: internal compiler error: RTL check: expected code 'set' or 'clobber', h
ave 'unspec' in try_combine, at combine.c:2898
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
compiler exited with status 1
output is:
/aj-cvs/gcc-svn/branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/vmx/3c-01a.c: In function 'f':
/aj-cvs/gcc-svn/branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/vmx/3c-01a.c:1450: internal compiler error: RTL check: expected code 'set' or 'clobber', h
ave 'unspec' in try_combine, at combine.c:2898
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

FAIL: gcc.dg/vmx/3c-01a.c  -O1  (test for excess errors)

This is with:
/opt/gcc/4.1-devel/bin/gcc -v
Using built-in specs.
Target: powerpc64-suse-linux-gnu
Configured with: /aj-cvs/gcc-svn/branches/gcc-4_1-branch/configure --prefix=/opt/gcc/4.1-devel --enable-checking=misc,tree,gc,rtl,rtlflag,assert --enable-threads=posix --enable-clocale=gnu --enable-__cxa_atexit --enable-shared --enable-languages=c,c++,treelang,java,f95,objc --with-system-zlib --with-cpu=default32 powerpc64-suse-linux-gnu
Thread model: posix
gcc version 4.1.0 20051119 (prerelease)
Comment 1 Andrew Pinski 2005-11-21 02:02:21 UTC
The bug in combine.c has been there since 1.1 of the file but I don't know if this is a latent bug which was just exposed or not.
Comment 2 Roger Sayle 2006-02-24 19:29:37 UTC
Subject: Bug 24952

Author: sayle
Date: Fri Feb 24 19:29:34 2006
New Revision: 111425

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111425
Log:

	PR middle-end/24952
	* combine.c (try_combine): Explicitly check whether GET_CODE is
	a SET or a CLOBBER, instead on checking that it isn't a USE.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/combine.c

Comment 3 roger 2006-02-24 19:37:52 UTC
This has now been fixed on mainline.
Comment 4 Peter Bergner 2007-08-02 13:42:28 UTC
Subject: Bug 24952

Author: bergner
Date: Thu Aug  2 13:42:06 2007
New Revision: 127160

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127160
Log:
	Backport from mainline.

	2006-02-24  Roger Sayle  <roger@eyesopen.com>
	PR middle-end/24952
	* combine.c (try_combine): Explicitly check whether GET_CODE is
	a SET or a CLOBBER, instead on checking that it isn't a USE.

	2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
	* config/rs6000/rs6000.c (get_store_dest): New.
	(adjacent_mem_locations): Use get_store_dest() to get
	the rtl of the store destination.

Modified:
    branches/ibm/gcc-4_1-branch/gcc/ChangeLog
    branches/ibm/gcc-4_1-branch/gcc/combine.c
    branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000.c