This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: New mainline bootstrap failure


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]