Commit 7cae94fc by Richard Guenther Committed by Richard Biener

re PR tree-optimization/39132 (wrong code generated with -ftree-loop-disttribution)

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.

	* gcc.dg/torture/pr39132.c: New testcase.

From-SVN: r144060
parent a8800687
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
......
/* { 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;
}
......@@ -77,6 +77,9 @@ static bitmap remaining_stmts;
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. */
......@@ -331,6 +334,8 @@ generate_memset_zero (gimple stmt, tree op0, tree nb_iter,
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;
......@@ -1206,6 +1211,8 @@ tree_loop_distribution (void)
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);
......@@ -1237,7 +1244,7 @@ tree_loop_distribution (void)
VEC_free (gimple, heap, work_list);
}
return 0;
return todo;
}
static bool
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment