PR tree-optimization/39132
* tree-loop-distribution.c (todo): New global var.
(generate_memset_zero): Trigger TODO_rebuild_alias.
(tree_loop_distribution): Return todo.
* gcc.dg/torture/pr39132.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144060
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-02-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39132
+ * tree-loop-distribution.c (todo): New global var.
+ (generate_memset_zero): Trigger TODO_rebuild_alias.
+ (tree_loop_distribution): Return todo.
+
2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
PR target/39119
+2009-02-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39132
+ * gcc.dg/torture/pr39132.c: New testcase.
+
2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
PR target/39119
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-ftree-loop-distribution" } */
+
+extern void abort(void);
+
+struct epic_private
+{
+ unsigned int *rx_ring;
+ unsigned int rx_skbuff[5];
+};
+
+int
+main (void)
+{
+ struct epic_private ep;
+ unsigned int rx_ring[5];
+ int i;
+
+ ep.rx_skbuff[0] = 5;
+
+ ep.rx_ring = rx_ring;
+
+ for (i = 0; i < 5; i++)
+ {
+ ep.rx_ring[i] = i;
+ ep.rx_skbuff[i] = 0;
+ }
+
+ if (ep.rx_skbuff[0] != 0)
+ abort ();
+
+ return 0;
+}
+
predecessor a node that writes to memory. */
static bitmap upstream_mem_writes;
+/* TODOs we need to run after the pass. */
+static unsigned int todo;
+
/* Update the PHI nodes of NEW_LOOP. NEW_LOOP is a duplicate of
ORIG_LOOP. */
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "generated memset zero\n");
+ todo |= TODO_rebuild_alias;
+
end:
free_data_ref (dr);
return res;
loop_iterator li;
int nb_generated_loops = 0;
+ todo = 0;
+
FOR_EACH_LOOP (li, loop, 0)
{
VEC (gimple, heap) *work_list = VEC_alloc (gimple, heap, 3);
VEC_free (gimple, heap, work_list);
}
- return 0;
+ return todo;
}
static bool