Commit f403a4a2 by Richard Guenther Committed by Richard Biener

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
parent 2627042d
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> 2008-05-14 Olivier Hainque <hainque@adacore.com>
* expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
......
...@@ -313,6 +313,14 @@ dse_possible_dead_store_p (tree stmt, ...@@ -313,6 +313,14 @@ dse_possible_dead_store_p (tree stmt,
gcc_assert (*use_p != NULL_USE_OPERAND_P); gcc_assert (*use_p != NULL_USE_OPERAND_P);
*first_use_p = *use_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: /* In the case of memory partitions, we may get:
# MPT.764_162 = VDEF <MPT.764_161(D)> # MPT.764_162 = VDEF <MPT.764_161(D)>
...@@ -360,29 +368,6 @@ dse_possible_dead_store_p (tree stmt, ...@@ -360,29 +368,6 @@ dse_possible_dead_store_p (tree stmt,
return false; 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; return true;
} }
......
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