]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results whose definitions are...
authorRobert Kennedy <jimbob@google.com>
Thu, 4 Jan 2007 01:20:08 +0000 (01:20 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 4 Jan 2007 01:20:08 +0000 (01:20 +0000)
* tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
whose definitions are deleted due to basic block merging.

From-SVN: r120423

gcc/ChangeLog
gcc/tree-cfg.c

index f9c53fc21fea445efd56947388f1bd822bc64cc1..b59cc9a56c2e773846e7df13f78b3b14af21c3f4 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-03  Robert Kennedy <jimbob@google.com>
+
+       * 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  <paul@codesourcery.com>
 
        PR target/16634
index d956d2becfcab34c577c251d46a99869dab656f3..4358c7e7b3e76b859bea9697f203f7f18c01e1e4 100644 (file)
@@ -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.  */