Commit 72a07d9b by Richard Biener

re PR tree-optimization/46398 (early FRE miscompiles simple testcase)

2010-11-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46398
	* tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.

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

From-SVN: r166527
parent d92034f1
2010-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46398
* tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2010-11-10 Joern Rennecke <amylaar@spamcop.net>
PR target/44760
2010-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46398
* gcc.dg/torture/pr46398.c: New testcase.
2010-11-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* gfortran.dg/open_dev_null.f90: New test.
2010-11-09 Jan Hubicka <jh@suse.cz>
* testsuite/gcc.target/i386/recip-vec-sqrtf-avx.c: Update for loop unrolling.
* testsuite/gcc.target/i386/recip-vec-sqrtf-avx.c: Update for loop
unrolling.
2010-11-09 Joseph Myers <joseph@codesourcery.com>
......
/* { dg-do run } */
int __attribute__((noinline))
test (int token)
{
int done = 0;
int virtual_p = 0;
while (!done)
{
if (token == 42)
virtual_p = 1;
else
done = 1;
}
return virtual_p;
}
extern void abort (void);
int
main()
{
if (test (0) != 0)
abort ();
return 0;
}
......@@ -3108,9 +3108,20 @@ process_scc (VEC (tree, heap) *scc)
if (VEC_length (tree, scc) == 1)
{
tree use = VEC_index (tree, scc, 0);
if (!VN_INFO (use)->use_processed)
visit_use (use);
return;
if (VN_INFO (use)->use_processed)
return;
/* We need to make sure it doesn't form a cycle itself, which can
happen for self-referential PHI nodes. In that case we would
end up inserting an expression with VN_TOP operands into the
valid table which makes us derive bogus equivalences later.
The cheapest way to check this is to assume it for all PHI nodes. */
if (gimple_code (SSA_NAME_DEF_STMT (use)) == GIMPLE_PHI)
/* Fallthru to iteration. */ ;
else
{
visit_use (use);
return;
}
}
/* Iterate over the SCC with the optimistic table until it stops
......
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