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-ebb.c | |
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-ebb.c')
-rw-r--r-- | gcc/sched-ebb.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/sched-ebb.c b/gcc/sched-ebb.c index 25a2aac5ddc..6bb223bbd3b 100644 --- a/gcc/sched-ebb.c +++ b/gcc/sched-ebb.c @@ -59,7 +59,7 @@ static basic_block last_bb; /* Implementations of the sched_info functions for region scheduling. */ static void init_ready_list (void); -static void begin_schedule_ready (rtx, rtx); +static void begin_schedule_ready (rtx); static int schedule_more_p (void); static const char *ebb_print_insn (const_rtx, int); static int rank (rtx, rtx); @@ -125,10 +125,15 @@ init_ready_list (void) /* INSN is being scheduled after LAST. Update counters. */ static void -begin_schedule_ready (rtx insn, rtx last) +begin_schedule_ready (rtx insn ATTRIBUTE_UNUSED) { sched_rgn_n_insns++; +} +/* INSN is being moved to its place in the schedule, after LAST. */ +static void +begin_move_insn (rtx insn, rtx last) +{ if (BLOCK_FOR_INSN (insn) == last_bb /* INSN is a jump in the last block, ... */ && control_flow_insn_p (insn) @@ -288,6 +293,7 @@ static struct haifa_sched_info ebb_sched_info = ebb_add_remove_insn, begin_schedule_ready, + begin_move_insn, advance_target_bb, SCHED_EBB /* We can create new blocks in begin_schedule_ready (). */ |