This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
splitting before sched2
- To: law at cygnus dot com, egcs at cygnus dot com
- Subject: splitting before sched2
- From: Richard Henderson <rth at cygnus dot com>
- Date: Sat, 4 Apr 1998 12:05:52 -0800
- Reply-To: Richard Henderson <rth at cygnus dot com>
On Alpha at least there are a number of splits that are only enabled
after reload is complete. I could have sworn other machines did this
as well. My problem is that Haifa only tries splitting once, usually
before reload.
The question is, should we just remove/disable the test, or should we
come up with some genconfig test that determines if the second pass is
necessary. Possibly by seeing if any predicate contains the string
"reload".
r~
Index: haifa-sched.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/haifa-sched.c,v
retrieving revision 1.34
diff -c -p -d -r1.34 haifa-sched.c
*** haifa-sched.c 1998/03/28 23:45:08 1.34
--- haifa-sched.c 1998/04/04 19:58:04
*************** split_block_insns (b)
*** 8278,8284 ****
/* It is probably not worthwhile to try to split again in
the second pass. However, if flag_schedule_insns is not set,
the first and only (if any) scheduling pass is after reload. */
! if (reload_completed == 0 || ! flag_schedule_insns)
{
rtx last, first = PREV_INSN (insn);
rtx notes = REG_NOTES (insn);
--- 8278,8286 ----
/* It is probably not worthwhile to try to split again in
the second pass. However, if flag_schedule_insns is not set,
the first and only (if any) scheduling pass is after reload. */
! /* ??? Well, no, there are on some machines certain splits that are
! enabled *only* after reload is complete. */
! if (1 || reload_completed == 0 || ! flag_schedule_insns)
{
rtx last, first = PREV_INSN (insn);
rtx notes = REG_NOTES (insn);