summaryrefslogtreecommitdiff
path: root/gcc/sched-ebb.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-04-01 17:46:17 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-04-01 17:46:17 +0000
commit86014d074872876f5340bfe9107eb577fd06b203 (patch)
tree3cfbbe26eff243d60d0a43f726d613c2f146bae0 /gcc/sched-ebb.c
parent2a6a0d809f0fe62306e21aaad89227205181e0e4 (diff)
sched-ebb.c (begin_schedule_ready): Remove second argument.
* 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. From-SVN: r171843
Diffstat (limited to 'gcc/sched-ebb.c')
-rw-r--r--gcc/sched-ebb.c10
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 (). */