[PATCH] Fix SCHED_GROUP_P ICEs on v850

law@redhat.com law@redhat.com
Tue Jan 21 16:20:00 GMT 2003


In message <Pine.LNX.4.44.0301190809100.30567-100000@www.eyesopen.com>, Roger S
ayle writes:
 >
 >The following patch fixes two ICEs building mainline GCC on v850.
 >Both occur building libstdc++-v3/include/bits/istream.tcc:
 >
 >internal compiler error: RTL flag check: SCHED_GROUP_P used with
 >unexpected rtx code `note' in can_schedule_ready_p, at sched-rgn.c:2123
 >
 >The code in question looks like:
 >
 >>	while (SCHED_GROUP_P (insn))
 >>	  insn = PREV_INSN (insn);
 >
 >Examining the other examples of looping over SCHED_GROUP_P in
 >sched-rgn.c, it appears the correct fix it to use prev_nonnote_insn.
 >Making this change, gets us very slightly further:
 >
 >internal compiler error: RTL flag check: SCHED_GROUP_P used with
 >unexpected rtx code `note' in move_insn, at haifa-sched.c:1774
 >
 >This is an identical problem, and can be resolved using the same
 >idiom, replacing PREV_INSN with prev_nonnote_insn.
 >
 >With these two changes I'm able to successfully build a cross-compiler
 >from i686-pc-linux-gnu to v850-elf, and run the testsuite on v850-sim.
 >The patch has also been tested with a complete bootstrap, all languages
 >except Ada and treelang, on i686-pc-linux-gnu, and a full "make -k check"
 >with no new regressions.
 >
 >
 >Could a scheduling expert confirm this is indeed the correct fix?
 >Ok for mainline?
I'd like to know what kinds of notes you're running into.  I'm pretty
sure they all should have been (temporarily) removed from the insn stream
before scheduling.

Jeff




More information about the Gcc-patches mailing list