summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-27 21:44:55 +0000
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-27 21:44:55 +0000
commit6d03809a5c7305226b48fd601d7f197586f73be2 (patch)
treee16ad23964e27638c0cf9040bb26c64666d13029
parent839904a0e3a1859cdfeb5ff23e5263c332f347fa (diff)
downloadgcc-6d03809a5c7305226b48fd601d7f197586f73be2.tar.gz
PR tree-optimization/23625
* tree-flow-inline.h (bsi_after_labels): Remove, first statement is LABEL_EXPR, assertion check. * gcc.dg/PR23625.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104711 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr23625.c27
-rw-r--r--gcc/tree-flow-inline.h9
4 files changed, 40 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1db15ee091..8963cab452d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-27 Daniel Berlin <dberlin@dberlin.org>
+ Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/23625
+ * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
+ LABEL_EXPR, assertion check.
+
2005-09-27 J"orn Rennecke <joern.rennecke@st.com>
* optabs.c (no_conflict_move_test): Check if a result of a
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9fd016a1eef..61bf586dbf8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-27 Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/23625
+ * gcc.dg/pr23625.c: New test.
+
2005-09-27 Uros Bizjak <uros@kss-loka.si>
* gcc.target/i386/pr22585.c: Run on 32-bit x86 only.
diff --git a/gcc/testsuite/gcc.dg/pr23625.c b/gcc/testsuite/gcc.dg/pr23625.c
new file mode 100644
index 00000000000..aaeddb2886d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr23625.c
@@ -0,0 +1,27 @@
+/* Test case for PR23625 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -ftree-loop-linear" } */
+
+typedef long INT32;
+void find_best_colors ()
+{
+int ic0, ic1, ic2;
+INT32 * bptr;
+INT32 dist1;
+INT32 dist2;
+INT32 xx1;
+for (ic0 = (1<<(5 -3))-1;ic0 >= 0;ic0--)
+{
+ for (ic1 = (1<<(6 -3))-1;ic1 >= 0;ic1--)
+ {
+ dist2 = dist1;
+ for (ic2 = (1<<(5 -3))-1;ic2 >= 0;ic2--)
+ {
+ *bptr = dist2;
+ bptr++;
+ }
+ dist1 += xx1;
+ }
+}
+}
+
diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h
index b317c8ccc9a..d8b57a556af 100644
--- a/gcc/tree-flow-inline.h
+++ b/gcc/tree-flow-inline.h
@@ -727,7 +727,7 @@ bsi_start (basic_block bb)
return bsi;
}
-/* Return a block statement iterator that points to the last label in
+/* Return a block statement iterator that points to the first non-label
block BB. */
static inline block_stmt_iterator
@@ -750,13 +750,6 @@ bsi_after_labels (basic_block bb)
if (tsi_end_p (bsi.tsi))
return bsi;
- /* Ensure that there are some labels. The rationale is that we want
- to insert after the bsi that is returned, and these insertions should
- be placed at the start of the basic block. This would not work if the
- first statement was not label; rather fail here than enable the user
- proceed in wrong way. */
- gcc_assert (TREE_CODE (tsi_stmt (bsi.tsi)) == LABEL_EXPR);
-
next = bsi.tsi;
tsi_next (&next);