aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorRobert Kennedy <jimbob@google.com>2007-01-04 01:20:08 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2007-01-04 01:20:08 +0000
commit611021e16c0a63e45a4f7024320cada712a93834 (patch)
treea137d66b8c77198e687f67e212348bdacf799edf /gcc/tree-cfg.c
parent11de78ffd10f606ee8b88a7234644bb82f63561e (diff)
downloadgcc-611021e16c0a63e45a4f7024320cada712a93834.zip
gcc-611021e16c0a63e45a4f7024320cada712a93834.tar.gz
gcc-611021e16c0a63e45a4f7024320cada712a93834.tar.bz2
tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results whose definitions are deleted due to basic block...
* tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results whose definitions are deleted due to basic block merging. From-SVN: r120423
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index d956d2b..4358c7e 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -1,5 +1,5 @@
/* Control flow functions for trees.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Contributed by Diego Novillo <dnovillo@redhat.com>
@@ -1329,11 +1329,13 @@ tree_merge_blocks (basic_block a, basic_block b)
copy = build2_gimple (GIMPLE_MODIFY_STMT, def, use);
bsi_insert_after (&bsi, copy, BSI_NEW_STMT);
SSA_NAME_DEF_STMT (def) = copy;
+ remove_phi_node (phi, NULL, false);
}
else
- replace_uses_by (def, use);
-
- remove_phi_node (phi, NULL, false);
+ {
+ replace_uses_by (def, use);
+ remove_phi_node (phi, NULL, true);
+ }
}
/* Ensure that B follows A. */