summaryrefslogtreecommitdiff
path: root/gcc/sched-int.h
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-01 17:46:17 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-01 17:46:17 +0000
commitd2412f572552ccaae4afef50c7e22e1235355438 (patch)
tree3cfbbe26eff243d60d0a43f726d613c2f146bae0 /gcc/sched-int.h
parentf193baddc95f8a99d57cd4bd47ea58a0bdf13b19 (diff)
downloadgcc-d2412f572552ccaae4afef50c7e22e1235355438.tar.gz
* sched-ebb.c (begin_schedule_ready): Remove second argument.
Split most of the code into... (begin_move_insn): ... here. New function. (ebb_sched_info): Add a pointer to it. * haifa-sched.c (scheduled_insns): New static variable. (sched_extend_ready_list): Allocate it. (schedule_block): Use it to record the order of scheduled insns. Perform RTL changes to move insns only after all scheduling decisions have been made. * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the begin_move_insn field. * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. * sched-int.h (struct haifa_sched_info): Remove second argument from begin_schedule_ready hook. Add new member begin_move_insn. * sched-rgn.c (begin_schedule_ready): Remove second argument. (rgn_const_sched_info): Add NULL entry for the begin_move_insn field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171843 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r--gcc/sched-int.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index 10fd03c9f42..d5add3bf218 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -605,10 +605,15 @@ struct haifa_sched_info
parameter == 0) or removed (second parameter == 1). */
void (*add_remove_insn) (rtx, int);
- /* Called to notify frontend that instruction is being scheduled.
- The first parameter - instruction to scheduled, the second parameter -
- last scheduled instruction. */
- void (*begin_schedule_ready) (rtx, rtx);
+ /* Called to notify the frontend that instruction INSN is being
+ scheduled. */
+ void (*begin_schedule_ready) (rtx insn);
+
+ /* Called to notify the frontend that an instruction INSN is about to be
+ moved to its correct place in the final schedule. This is done for all
+ insns in order of the schedule. LAST indicates the last scheduled
+ instruction. */
+ void (*begin_move_insn) (rtx insn, rtx last);
/* If the second parameter is not NULL, return nonnull value, if the
basic block should be advanced.