This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: New mainline bootstrap failure
- From: "Vladimir N. Makarov" <vmakarov at redhat dot com>
- To: Andreas Schwab <schwab at suse dot de>
- Cc: gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Mon, 17 Jun 2002 13:18:44 -0400
- Subject: Re: New mainline bootstrap failure
- References: <jeelf68fqt.fsf@sykes.suse.de>
Andreas Schwab wrote:
> I'm currently getting the following error during bootstrap for ia64-linux:
>
> ./xgcc -B./ -B/usr/local/ia64-suse-linux/bin/ -isystem /usr/local/ia64-suse-linux/include -isystem /usr/local/ia64-suse-linux/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include -DL_ffsdi2 -c ../../gcc/libgcc2.c -o libgcc/./_ffsdi2.o
> ../../gcc/libgcc2.c: In function `__ffsti2':
> ../../gcc/libgcc2.c:350: internal compiler error: RTL flag check: SCHED_GROUP_P used with unexpected rtx code `code_label' in init_ready_list, at sched-ebb.c:97
>
> Andreas.
Here, the patch is. Its is obvious, therefore I've commited it into main line.
I've checked the problem is gone on ia64-linux (as I know this is single port using sched-ebb.c).
Vlad
2002-06-17 Vladimir Makarov <vmakarov@redhat.com>
* sched-ebb.c (init_ready_list): Check INSN_P first.
Index: sched-ebb.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/sched-ebb.c,v
retrieving revision 1.16
diff -c -p -1 -0 -r1.16 sched-ebb.c
*** sched-ebb.c 10 Jun 2002 22:33:07 -0000 1.16
--- sched-ebb.c 17 Jun 2002 15:27:11 -0000
*************** init_ready_list (ready)
*** 87,107 ****
Count number of insns in the target block being scheduled. */
for (insn = NEXT_INSN (prev_head); insn != next_tail; insn = NEXT_INSN (insn))
{
rtx next;
if (! INSN_P (insn))
continue;
next = NEXT_INSN (insn);
if (INSN_DEP_COUNT (insn) == 0
! && (SCHED_GROUP_P (next) == 0 || ! INSN_P (next)))
ready_add (ready, insn);
if (!(SCHED_GROUP_P (insn)))
target_n_insns++;
}
}
/* Called after taking INSN from the ready list. Returns nonzero if this
insn can be scheduled, nonzero if we should silently discard it. */
static int
--- 87,107 ----
Count number of insns in the target block being scheduled. */
for (insn = NEXT_INSN (prev_head); insn != next_tail; insn = NEXT_INSN (insn))
{
rtx next;
if (! INSN_P (insn))
continue;
next = NEXT_INSN (insn);
if (INSN_DEP_COUNT (insn) == 0
! && (! INSN_P (next) || SCHED_GROUP_P (next) == 0))
ready_add (ready, insn);
if (!(SCHED_GROUP_P (insn)))
target_n_insns++;
}
}
/* Called after taking INSN from the ready list. Returns nonzero if this
insn can be scheduled, nonzero if we should silently discard it. */
static int