Hello, there seems to be a problem compiling the attached source file with i686-pc-linux-gnu-gcc: gcc -m32 -Wp,-MD,drivers/scsi/.atp870u.o.d -nostdinc -isystem /home/mstein/host-gcc/trunk-2007-07-03/bin/../lib/gcc/i686-pc-linux-gnu/4.3.0/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -pipe -msoft-float -mregparm=3 -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -Iinclude/asm-i386/mach-default -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(atp870u)" -D"KBUILD_MODNAME=KBUILD_STR(atp870u)" -c -o drivers/scsi/.tmp_atp870u.o drivers/scsi/atp870u.c gcc: warning: -pipe ignored because -save-temps specified drivers/scsi/atp870u.c: In function 'is885': drivers/scsi/atp870u.c:3302: internal compiler error: in set_ssa_val_to, at tree-ssa-sccvn.c:1026 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. host gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: /home/mstein/svn/trunk/configure --enable-languages=c --disable-nls --prefix=/n/07/mstein/host-gcc/trunk-2007-07-03 Thread model: posix gcc version 4.3.0 20070702 (experimental) Tested revision: 126237 Last succesfull build revision: 126095
Created attachment 13832 [details] preprocessed source file from linux-2.6.20, delta-reduced
Confirmed. Fails at -O. There are lots of similar ACATS failures on the trunk as well.
Here is a reduced testcase which has only one function in it: int inb(int); void is870(unsigned int wkport, unsigned char j) { unsigned int tmport; unsigned char i; for (i = 0; i < 16; i++) { tmport = wkport + 0x18; tmport += 0x07; while ((inb(tmport) & 0x80) == 0) { if ((inb(tmport) & 0x01) != 0) { tmport -= 0x06; tmport += 0x06; } } tmport = wkport + 0x14; tmport += 0x04; tmport += 0x07; widep_in1: if ((j & 0x01) != 0) { tmport -= 0x06; tmport += 0x06; goto widep_in1; } while ((inb(tmport) & 0x80) == 0) {} } }
Subject: Bug 32606 Author: dberlin Date: Wed Jul 4 22:11:14 2007 New Revision: 126338 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126338 Log: 2007-07-04 Daniel Berlin <dberlin@dberlin.org> PR tree-optimization/32604 PR tree-optimization/32606 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads. (compute_antic_safe): Removed. (ANTIC_SAFE_LOADS): Ditto. (compute_antic_aux): Don't print ANTIC_SAFE_LOADS. (execute_pre): Don't call compute_antic_safe. (vuse_equiv): New function. (make_values_for_stmt): Use it * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is not always true. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr32606.c trunk/gcc/testsuite/gfortran.fortran-torture/execute/pr32604.f90 Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-pre.c trunk/gcc/tree-ssa-sccvn.c
Fixed.