tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.

2008-05-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
	Make sure to register the store if the use is a PHI_NODE.

From-SVN: r135298
This commit is contained in:
Richard Guenther 2008-05-14 15:30:14 +00:00 committed by Richard Biener
parent 2627042d9a
commit f403a4a270
2 changed files with 13 additions and 23 deletions

View File

@ -1,3 +1,8 @@
2008-05-14 Richard Guenther <rguenther@suse.de>
* tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
Make sure to register the store if the use is a PHI_NODE.
2008-05-14 Olivier Hainque <hainque@adacore.com>
* expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to

View File

@ -313,6 +313,14 @@ dse_possible_dead_store_p (tree stmt,
gcc_assert (*use_p != NULL_USE_OPERAND_P);
*first_use_p = *use_p;
/* ??? If we hit a PHI_NODE we could skip to the PHI_RESULT uses.
Don't bother to do that for now. */
if (TREE_CODE (temp) == PHI_NODE)
{
fail = true;
break;
}
/* In the case of memory partitions, we may get:
# MPT.764_162 = VDEF <MPT.764_161(D)>
@ -360,29 +368,6 @@ dse_possible_dead_store_p (tree stmt,
return false;
}
/* Skip through any PHI nodes we have already seen if the PHI
represents the only use of this store.
Note this does not handle the case where the store has
multiple VDEFs which all reach a set of PHI nodes in the same block. */
while (*use_p != NULL_USE_OPERAND_P
&& TREE_CODE (*use_stmt) == PHI_NODE
&& bitmap_bit_p (dse_gd->stores, get_stmt_uid (*use_stmt)))
{
/* A PHI node can both define and use the same SSA_NAME if
the PHI is at the top of a loop and the PHI_RESULT is
a loop invariant and copies have not been fully propagated.
The safe thing to do is exit assuming no optimization is
possible. */
if (SSA_NAME_DEF_STMT (PHI_RESULT (*use_stmt)) == *use_stmt)
return false;
/* Skip past this PHI and loop again in case we had a PHI
chain. */
single_imm_use (PHI_RESULT (*use_stmt), use_p, use_stmt);
}
return true;
}