re PR middle-end/38729 (long time needed in tree canonical iv)

2009-06-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38729
	* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
	to loops with a single exit if -fno-expensive-optimizations.

From-SVN: r148761
This commit is contained in:
Richard Guenther 2009-06-21 10:22:08 +00:00 committed by Richard Biener
parent d24686d79d
commit 2cee15096c
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2009-06-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38729
* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
to loops with a single exit if -fno-expensive-optimizations.
2009-06-21 Jakub Jelinek <jakub@redhat.com>
* var-tracking.c (struct shared_hash_def, shared_hash): New types.

View File

@ -2254,6 +2254,12 @@ find_loop_niter_by_eval (struct loop *loop, edge *exit)
tree niter = NULL_TREE, aniter;
*exit = NULL;
/* Loops with multiple exits are expensive to handle and less important. */
if (!flag_expensive_optimizations
&& VEC_length (edge, exits) > 1)
return chrec_dont_know;
for (i = 0; VEC_iterate (edge, exits, i, ex); i++)
{
if (!just_once_each_iteration_p (loop, ex->src))