On 07/19/11 14:25, Andreas Schwab wrote: > I'm now seeing this ICE: > > /bin/sh ./libtool --tag=GCJ --mode=compile > /usr/local/gcc/gcc-20110719/Build/./gcc/gcj > -B/usr/local/gcc/gcc-20110719/Build/ia64-suse-linux/libjava/ > -B/usr/local/gcc/gcc-20110719/Build/./gcc/ -B/usr/ia64-suse-linux/bin/ > -B/usr/ia64-suse-linux/lib/ -isystem /usr/ia64-suse-linux/include -isystem > /usr/ia64-suse-linux/sys-include -funwind-tables -fclasspath= > -fbootclasspath=../../../libjava/classpath/lib --encoding=UTF-8 > -Wno-deprecated -fbootstrap-classes -g -O2 -c -o java/lang/ref.lo > -fsource-filename=/usr/local/gcc/gcc-20110719/Build/ia64-suse-linux/libjava/classpath/lib/classes > -MT java/lang/ref.lo -MD -MP -MF java/lang/ref.deps @java/lang/ref.list > libtool: compile: /usr/local/gcc/gcc-20110719/Build/./gcc/gcj > -B/usr/local/gcc/gcc-20110719/Build/ia64-suse-linux/libjava/ > -B/usr/local/gcc/gcc-20110719/Build/./gcc/ -B/usr/ia64-suse-linux/bin/ > -B/usr/ia64-suse-linux/lib/ -isystem /usr/ia64-suse-linux/include -isystem > /usr/ia64-suse-linux/sys-include -funwind-tables -fclasspath= > -fbootclasspath=../../../libjava/classpath/lib --encoding=UTF-8 > -Wno-deprecated -fbootstrap-classes -g -O2 -c > -fsource-filename=/usr/local/gcc/gcc-20110719/Build/ia64-suse-linux/libjava/classpath/lib/classes > -MT java/lang/ref.lo -MD -MP -MF java/lang/ref.deps @java/lang/ref.list > -fPIC -o java/lang/.libs/ref.o > /usr/local/gcc/gcc-20110719/libjava/classpath/java/lang/ref/ReferenceQueue.java: > In class 'java.lang.ref.ReferenceQueue': > /usr/local/gcc/gcc-20110719/libjava/classpath/java/lang/ref/ReferenceQueue.java: > In method 'java.lang.ref.ReferenceQueue.enqueue(java.lang.ref.Reference)': > In file included from > /usr/local/gcc/gcc-20110719/libjava/java/lang/ref/Reference.java:202:0, > from > /usr/local/gcc/gcc-20110719/libjava/classpath/java/lang/ref/PhantomReference.java:75, > from <built-in>:6: > /usr/local/gcc/gcc-20110719/libjava/classpath/java/lang/ref/ReferenceQueue.java:97:0: > internal compiler error: in advance_target_bb, at sched-ebb.c:691 > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > make[3]: *** [java/lang/ref.lo] Error 1
It's getting confused about loads/stores being control_flow_insns and getting scheduled past each other nonetheless. Mind testing the following? Bernd
Index: gcc/sched-ebb.c =================================================================== --- gcc/sched-ebb.c (revision 176579) +++ gcc/sched-ebb.c (working copy) @@ -397,6 +397,9 @@ add_deps_for_risky_insns (rtx head, rtx bb = BLOCK_FOR_INSN (insn); bb->aux = last_block; last_block = bb; + if (flag_non_call_exceptions && last_jump != NULL_RTX) + add_dependence (insn, last_jump, REG_DEP_ANTI); + last_jump = insn; } else if (INSN_P (insn) && last_jump != NULL_RTX)