Commit e71d7f88 by Zdenek Dvorak Committed by Zdenek Dvorak

re PR tree-optimization/31885 (Not removing empty loop, scev not finding the correct result)

	PR tree-optimization/31885
	* tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
	to be undetermined.
	(automatically_generated_chrec_p): Return false for NULL.

	* gcc.dg/tree-ssa/loop-29.c: New test.

From-SVN: r124602
parent 5635c26e
2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/31885
* tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
to be undetermined.
(automatically_generated_chrec_p): Return false for NULL.
2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com> 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.h (MOVE_RATIO): Define. * config/bfin/bfin.h (MOVE_RATIO): Define.
......
2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/31885
* gcc.dg/tree-ssa/loop-29.c: New test.
2007-05-10 Dominique d'Humires <dominiq@lps.ens.fr> 2007-05-10 Dominique d'Humires <dominiq@lps.ens.fr>
* assumed_dummy_1.f90: Fix dg directive. * assumed_dummy_1.f90: Fix dg directive.
/* PR 31885 */
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-empty" } */
struct s {
int *blah;
};
static struct s array[] = { { 0 } };
void
foo (struct s *p)
{
struct s *q = &array[1];
while (p < q)
p++;
}
/* { dg-final { scan-tree-dump-times "Removing empty loop" 1 "empty" } } */
/* { dg-final { cleanup-tree-dump "empty" } } */
...@@ -888,11 +888,12 @@ chrec_contains_undetermined (tree chrec) ...@@ -888,11 +888,12 @@ chrec_contains_undetermined (tree chrec)
{ {
int i, n; int i, n;
if (chrec == chrec_dont_know if (chrec == chrec_dont_know)
|| chrec == chrec_not_analyzed_yet
|| chrec == NULL_TREE)
return true; return true;
if (chrec == NULL_TREE)
return false;
n = TREE_OPERAND_LENGTH (chrec); n = TREE_OPERAND_LENGTH (chrec);
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
if (chrec_contains_undetermined (TREE_OPERAND (chrec, i))) if (chrec_contains_undetermined (TREE_OPERAND (chrec, i)))
......
...@@ -36,8 +36,7 @@ extern GTY(()) tree chrec_known; ...@@ -36,8 +36,7 @@ extern GTY(()) tree chrec_known;
static inline bool static inline bool
automatically_generated_chrec_p (tree chrec) automatically_generated_chrec_p (tree chrec)
{ {
return (chrec == chrec_not_analyzed_yet return (chrec == chrec_dont_know
|| chrec == chrec_dont_know
|| chrec == chrec_known); || chrec == chrec_known);
} }
......
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