re PR tree-optimization/42719 ("-fcompare-debug failure" with "-O2 -ftracer")

PR tree-optimization/42719
	* tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
	stmt uses.

	* gcc.dg/pr42719.c: New test.

From-SVN: r156038
This commit is contained in:
Jakub Jelinek 2010-01-19 13:39:42 +01:00 committed by Jakub Jelinek
parent 2178b0f93a
commit d6600130fa
4 changed files with 23 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2010-01-19 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/42719
* tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
stmt uses.
PR debug/42728
* fwprop.c (all_uses_available_at): Return false if def_set dest
is a REG that is used in def_insn.

View File

@ -1,5 +1,8 @@
2010-01-19 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/42719
* gcc.dg/pr42719.c: New test.
PR debug/42728
* gcc.dg/pr42728.c: New test.

View File

@ -0,0 +1,14 @@
/* PR tree-optimization/42719 */
/* { dg-do compile } */
/* { dg-options "-O2 -ftracer -fcompare-debug" } */
int *v;
void
foo (int a)
{
int i, j;
for (j = i = a; i != -1; j = i, i = v[i])
;
v[j] = v[a];
}

View File

@ -956,6 +956,8 @@ trivially_conflicts_p (basic_block bb, tree result, tree arg)
FOR_EACH_IMM_USE_FAST (use, imm_iter, result)
{
gimple use_stmt = USE_STMT (use);
if (is_gimple_debug (use_stmt))
continue;
/* Now, if there's a use of RESULT that lies outside this basic block,
then there surely is a conflict with ARG. */
if (gimple_bb (use_stmt) != bb)