From 90bf0a0066d0e93b78eb3012c17b323cd084ff8b Mon Sep 17 00:00:00 2001
From: mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 7 Dec 2006 10:02:35 +0000
Subject: [PATCH] 2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29794
	* sched-rgn.c (add_block1): Use correct initializer.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119613 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog   | 5 +++++
 gcc/sched-rgn.c | 8 +++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 51476b1a7ddd..e3410473d09e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	PR target/29794
+	* sched-rgn.c (add_block1): Use correct initializer.
+
 2006-12-07  Richard Guenther  <rguenther@suse.de>
 
 	* tree-vect-transform.c (vectorizable_call): Fix leftover of
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 8b9cf9931bea..7f7f58692388 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -3124,9 +3124,15 @@ add_block1 (basic_block bb, basic_block after)
 	 is _always_ valid for access.  */
 
       i = BLOCK_TO_BB (after->index) + 1;
-      for (pos = ebb_head[i]; rgn_bb_table[pos] != after->index; pos--);
+      pos = ebb_head[i] - 1;
+      /* Now POS is the index of the last block in the region.  */
+
+      /* Find index of basic block AFTER.  */
+      for (; rgn_bb_table[pos] != after->index; pos--);
+
       pos++;
       gcc_assert (pos > ebb_head[i - 1]);
+
       /* i - ebb right after "AFTER".  */
       /* ebb_head[i] - VALID.  */
 
-- 
GitLab