From 8de9b877e7853c725c1a9cc4dc5e18c39debf41d Mon Sep 17 00:00:00 2001
From: Ayal Zaks <zaks@il.ibm.com>
Date: Tue, 31 Mar 2009 06:19:06 +0000
Subject: [PATCH] SMS - Pass the actual schedulable rows to compute_split_row

From-SVN: r145333
---
 gcc/ChangeLog      | 5 +++++
 gcc/modulo-sched.c | 7 +++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6c323f6d8229..81886235bd6e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
+
+	* modulo-sched.c (sms_schedule_by_order): Pass the actual
+	schedulable rows to compute_split_row.
+
 2009-03-31  Ben Elliston  <bje@au.ibm.com>
 
 	PR target/31635
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 7134bfc0d00c..bd49f9f9b6a2 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -1832,11 +1832,14 @@ sms_schedule_by_order (ddg_ptr g, int mii, int maxii, int *nodes_order)
                 }
 
               num_splits++;
+              /* The scheduling window is exclusive of 'end'
+                 whereas compute_split_window() expects an inclusive,
+                 ordered range.  */
               if (step == 1)
-                split_row = compute_split_row (sched_nodes, start, end,
+                split_row = compute_split_row (sched_nodes, start, end - 1,
                                                ps->ii, u_node);
               else
-                split_row = compute_split_row (sched_nodes, end, start,
+                split_row = compute_split_row (sched_nodes, end + 1, start,
                                                ps->ii, u_node);
 
               ps_insert_empty_row (ps, split_row, sched_nodes);
-- 
GitLab