diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f9c53fc21fe..b59cc9a56c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-01-03 Robert Kennedy + + * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results + whose definitions are deleted due to basic block merging. + 2007-01-03 Paul Brook PR target/16634 diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index d956d2becfc..4358c7e7b3e 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 @@ -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. */