diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-01 17:46:17 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-01 17:46:17 +0000 |
commit | d2412f572552ccaae4afef50c7e22e1235355438 (patch) | |
tree | 3cfbbe26eff243d60d0a43f726d613c2f146bae0 /gcc/sched-int.h | |
parent | f193baddc95f8a99d57cd4bd47ea58a0bdf13b19 (diff) | |
download | gcc-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.h | 13 |
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. |