mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 05:10:25 +08:00
tree-phinodes.c (remove_phi_node): Clean up by factoring out calls to release_ssa_name and release_phi_node.
* tree-phinodes.c (remove_phi_node): Clean up by factoring out calls to release_ssa_name and release_phi_node. From-SVN: r95835
This commit is contained in:
parent
8fb790fd3f
commit
4430da7ffc
@ -6,6 +6,9 @@
|
||||
* cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
|
||||
EDGE_I.
|
||||
|
||||
* tree-phinodes.c (remove_phi_node): Clean up by factoring out
|
||||
calls to release_ssa_name and release_phi_node.
|
||||
|
||||
2005-03-03 Roger Sayle <roger@eyesopen.com>
|
||||
Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
|
@ -404,36 +404,27 @@ remove_phi_args (edge e)
|
||||
void
|
||||
remove_phi_node (tree phi, tree prev, basic_block bb)
|
||||
{
|
||||
tree *loc;
|
||||
|
||||
if (prev)
|
||||
{
|
||||
/* Rewire the list if we are given a PREV pointer. */
|
||||
PHI_CHAIN (prev) = PHI_CHAIN (phi);
|
||||
|
||||
/* If we are deleting the PHI node, then we should release the
|
||||
SSA_NAME node so that it can be reused. */
|
||||
release_ssa_name (PHI_RESULT (phi));
|
||||
release_phi_node (phi);
|
||||
}
|
||||
else if (phi == phi_nodes (bb))
|
||||
{
|
||||
/* Update the list head if removing the first element. */
|
||||
bb_ann (bb)->phi_nodes = PHI_CHAIN (phi);
|
||||
|
||||
/* If we are deleting the PHI node, then we should release the
|
||||
SSA_NAME node so that it can be reused. */
|
||||
release_ssa_name (PHI_RESULT (phi));
|
||||
release_phi_node (phi);
|
||||
loc = &PHI_CHAIN (prev);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Traverse the list looking for the node to remove. */
|
||||
tree prev, t;
|
||||
prev = NULL_TREE;
|
||||
for (t = phi_nodes (bb); t && t != phi; t = PHI_CHAIN (t))
|
||||
prev = t;
|
||||
if (t)
|
||||
remove_phi_node (t, prev, bb);
|
||||
for (loc = &(bb_ann (bb)->phi_nodes);
|
||||
*loc != phi;
|
||||
loc = &PHI_CHAIN (*loc))
|
||||
;
|
||||
}
|
||||
|
||||
/* Remove PHI from the chain. */
|
||||
*loc = PHI_CHAIN (phi);
|
||||
|
||||
/* If we are deleting the PHI node, then we should release the
|
||||
SSA_NAME node so that it can be reused. */
|
||||
release_ssa_name (PHI_RESULT (phi));
|
||||
release_phi_node (phi);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user