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
This commit is contained in:
parent
5635c26e57
commit
e71d7f88ba
5 changed files with 38 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
|||
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>
|
||||
|
||||
* config/bfin/bfin.h (MOVE_RATIO): Define.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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'Humières <dominiq@lps.ens.fr>
|
||||
|
||||
* assumed_dummy_1.f90: Fix dg directive.
|
||||
|
|
21
gcc/testsuite/gcc.dg/tree-ssa/loop-29.c
Normal file
21
gcc/testsuite/gcc.dg/tree-ssa/loop-29.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* 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)
|
|||
{
|
||||
int i, n;
|
||||
|
||||
if (chrec == chrec_dont_know
|
||||
|| chrec == chrec_not_analyzed_yet
|
||||
|| chrec == NULL_TREE)
|
||||
if (chrec == chrec_dont_know)
|
||||
return true;
|
||||
|
||||
if (chrec == NULL_TREE)
|
||||
return false;
|
||||
|
||||
n = TREE_OPERAND_LENGTH (chrec);
|
||||
for (i = 0; i < n; i++)
|
||||
if (chrec_contains_undetermined (TREE_OPERAND (chrec, i)))
|
||||
|
|
|
@ -36,8 +36,7 @@ extern GTY(()) tree chrec_known;
|
|||
static inline bool
|
||||
automatically_generated_chrec_p (tree chrec)
|
||||
{
|
||||
return (chrec == chrec_not_analyzed_yet
|
||||
|| chrec == chrec_dont_know
|
||||
return (chrec == chrec_dont_know
|
||||
|| chrec == chrec_known);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue