re PR middle-end/53616 (416.gamess in SPEC CPU 2006 miscompiled)

2012-07-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53616
	* tree-loop-distribution.c (ldist_gen): Do not change
	partition ordering when merging partitions.

From-SVN: r189802
This commit is contained in:
Richard Guenther 2012-07-24 08:37:43 +00:00 committed by Richard Biener
parent d32d6b75ca
commit 38ad2d0798
2 changed files with 25 additions and 10 deletions

View file

@ -1,3 +1,9 @@
2012-07-24 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53616
* tree-loop-distribution.c (ldist_gen): Do not change
partition ordering when merging partitions.
2012-07-24 Alan Modra <amodra@gmail.com>
PR target/53914

View file

@ -1289,16 +1289,25 @@ ldist_gen (struct loop *loop, struct graph *rdg,
nbp = 0;
goto ldist_done;
}
for (i = 0; VEC_iterate (partition_t, partitions, i, into); ++i)
if (!partition_builtin_p (into))
break;
for (++i; VEC_iterate (partition_t, partitions, i, partition); ++i)
if (!partition_builtin_p (partition))
{
bitmap_ior_into (into->stmts, partition->stmts);
VEC_ordered_remove (partition_t, partitions, i);
i--;
}
/* Only fuse adjacent non-builtin partitions, see PR53616.
??? Use dependence information to improve partition ordering. */
i = 0;
do
{
for (; VEC_iterate (partition_t, partitions, i, into); ++i)
if (!partition_builtin_p (into))
break;
for (++i; VEC_iterate (partition_t, partitions, i, partition); ++i)
if (!partition_builtin_p (partition))
{
bitmap_ior_into (into->stmts, partition->stmts);
VEC_ordered_remove (partition_t, partitions, i);
i--;
}
else
break;
}
while ((unsigned) i < VEC_length (partition_t, partitions));
}
else
{