+2015-01-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/64406
+ * tree-loop-distibution.c (pass_loop_distribution::execute):
+ Reset the SCEV hashtable if we distributed anything.
+
2015-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/64404
+2015-01-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/64406
+ * gcc.dg/pr64406.c: New testcase.
+
2015-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/64404
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O -ftree-loop-distribute-patterns -fno-tree-loop-ivcanon -fno-tree-loop-vectorize -ftree-vectorize" } */
+
+unsigned in[72];
+
+void bar (unsigned out[], unsigned ia[]);
+
+void
+foo ()
+{
+ int i;
+ unsigned out[72], ia[8];
+ for (i = 0; i < 8; i++)
+ {
+ out[i * 8] = in[i * 8] + 5;
+ out[i * 8 + 1] = in[i * 8 + 1] + 6;
+ out[i * 8 + 2] = in[i * 8 + 2] + 7;
+ out[i * 8 + 3] = in[i * 8 + 3] + 8;
+ out[i * 8 + 4] = in[i * 8 + 4] + 9;
+ out[i * 8 + 5] = in[i * 8 + 5] + 10;
+ out[i * 8 + 6] = in[i * 8 + 6] + 11;
+ out[i * 8 + 7] = in[i * 8 + 7] + 12;
+ ia[i] = in[i];
+ }
+ bar (out, ia);
+}
if (changed)
{
+ /* Cached scalar evolutions now may refer to wrong or non-existing
+ loops. */
+ scev_reset_htab ();
mark_virtual_operands_for_renaming (fun);
rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa);
}