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:
parent
2627042d9a
commit
f403a4a270
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user