This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
ICE in mainline on ARM wrt optimization
- To: gcc-bugs at gcc dot gnu dot org
- Subject: ICE in mainline on ARM wrt optimization
- From: Rod Stewart <stewart at netwinder dot org>
- Date: Mon, 10 Apr 2000 17:34:14 -0400 (EDT)
Using the mainline from this morning: Apr 10, 2000 -- 10 AM EST, I get an
ICE when trying to build GCC natively on ARM Linux (NetWinder). Actually
it only appears with -O2 or greater optimization.
With -O1, set for BOOT_CFLAGS it ICEs latter on using 2.96 20000325.
This happens using either gcc 2.95.2, or 2.96 20000325 from the old
ARM-Thumb branch to bootstrap.
The only applied patch was the following from Scott:
diff -upr gcc-armthumb.orig/gcc/config/arm/arm.md gcc-armthumb/gcc/config/arm/arm.md
--- gcc-armthumb.orig/gcc/config/arm/arm.md Fri Mar 31 15:35:48 2000
+++ gcc-armthumb/gcc/config/arm/arm.md Mon Apr 3 17:38:42 2000
@@ -3800,10 +3800,7 @@
}
}
- if (flag_pic
- && (CONSTANT_P (operands[1])
- || symbol_mentioned_p (operands[1])
- || label_mentioned_p (operands[1])))
+ if (flag_pic && CONSTANT_P (operands[1]))
operands[1] = legitimize_pic_address (operands[1], SImode,
((reload_in_progress
|| reload_completed)
gcc/fold-const.i.gz is attached. Compile was:
[root@stewart-nw11 gcc]# stage1/xgcc -Bstage1/
-B/usr/armv4l-unknown-linux-gnu/bin/ -c -DIN_GCC -W -Wall
-Wtraditional -O2 -g -O2 -DHAVE_CONFIG_H -I.
-I/usr/src/redhat/BUILD/gcc/gcc -I/usr/src/redhat/BUILD/gcc/gcc/config
-I/usr/src/redhat/BUILD/gcc/gcc/../include
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c -v --save-temps
Reading specs from stage1/specs
gcc version 2.96 20000410 (experimental)
stage1/cpp -lang-c -v -I. -I/usr/src/redhat/BUILD/gcc/gcc
-I/usr/src/redhat/BUILD/gcc/gcc/config
-I/usr/src/redhat/BUILD/gcc/gcc/../include -iprefix
stage1/../lib/gcc-lib/armv4l-unknown-linux-gnu/2.96/ -isystem
/usr/armv4l-unknown-linux-gnu/bin/include -isystem include -isystem
stage1/include -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0
-Dunix -D__arm__ -Dlinux -D__ELF__ -D__unix__ -D__arm__ -D__linux__
-D__ELF__ -D__unix -D__linux -Asystem(unix) -Asystem(posix) -Acpu(arm)
-Amachine(arm) -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -g -W -Wall
-Wtraditional -D__ARM_ARCH_4__ -D__APCS_32__ -D__ARMEL__ -Darm -D__arm__
-DIN_GCC -DHAVE_CONFIG_H /usr/src/redhat/BUILD/gcc/gcc/fold-const.c
fold-const.i
GNU CPP version 2.96 20000410 (experimental) (cpplib)
(ARM GNU/Linux with ELF)
ignoring nonexistent directory `/usr/armv4l-unknown-linux-gnu/bin/include'
ignoring nonexistent directory `stage1/include'
ignoring nonexistent directory
`lib/gcc-lib/armv4l-unknown-linux-gnu/2.96/include'
ignoring nonexistent directory `armv4l-unknown-linux-gnu/include'
ignoring nonexistent directory `/usr/local/include'
ignoring nonexistent directory
`/usr/lib/gcc-lib/armv4l-unknown-linux-gnu/2.96/include'
#include "..." search starts here:
#include <...> search starts here:
.
/usr/src/redhat/BUILD/gcc/gcc
/usr/src/redhat/BUILD/gcc/gcc/config
/usr/src/redhat/BUILD/gcc/include
include
/usr/armv4l-unknown-linux-gnu/include
/usr/include
End of search list.
stage1/cc1 fold-const.i -quiet -dumpbase fold-const.c -g -O2 -O2 -W -Wall
-Wtraditional -version -o fold-const.s
GNU C version 2.96 20000410 (experimental) (armv4l-unknown-linux-gnu)
compiled by GNU C version 2.95.2 20000212 (release) [Rebel.com].
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c: In function
`div_and_round_double':
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c:668: warning: comparison
between signed and unsigned
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c: In function
`optimize_bit_field_compare':
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c:2928: warning: comparison
between signed and unsigned
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c: In function `fold':
/usr/src/redhat/BUILD/gcc/gcc/fold-const.c:7107: Internal compiler error
in `insert_save', at caller-save.c:656
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
-Rms
gcc/fold-const.i.gz