+2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
+ Sebastian Pop <s.pop@samsung.com>
+
+ PR tree-optimization/68428
+ * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
+ over basic blocks outside the scop.
+
2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
basic_block bb;
FOR_EACH_VEC_ELT (dom, i, bb)
{
- DEBUG_PRINT (dp << "\nVisiting bb_" << bb->index);
+ DEBUG_PRINT (dp << "Visiting bb_" << bb->index << "\n");
/* We don't want to analyze any bb outside sese. */
if (!dominated_by_p (CDI_POST_DOMINATORS, bb, exit_bb))
continue;
+ /* Basic blocks dominated by the scop->exit are not in the scop. */
+ if (bb != exit_bb && dominated_by_p (CDI_DOMINATORS, bb, exit_bb))
+ continue;
+
/* The basic block should not be part of an irreducible loop. */
if (bb->flags & BB_IRREDUCIBLE_LOOP)
{
+2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
+ Sebastian Pop <s.pop@samsung.com>
+
+ PR tree-optimization/68428
+ * gcc.dg/graphite/pr68428.c: New.
+
2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
--- /dev/null
+/* { dg-options "-O2 -floop-nest-optimize" } */
+
+int au[4] = { 0 };
+
+int
+main(void)
+{
+ int dc;
+ int m7;
+ int lv;
+ int f2;
+ int uq[3] = { 1 };
+ for (dc = 0; dc < 2; ++dc) {
+ for (lv = 0; lv < 2; ++lv)
+ for (m7 = 0; m7 < 3; ++m7) {
+ if (uq[dc] == 0)
+ continue;
+ for (f2 = 0; f2 < 3; ++f2)
+ au[dc+2] = uq[f2];
+ }
+ }
+ return 0;
+}