OSDN Git Service

* tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Oct 2004 02:56:50 +0000 (02:56 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Oct 2004 02:56:50 +0000 (02:56 +0000)
<COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89729 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-dce.c

index 07ac74a..dd448d1 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
+       <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
+
 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
index 563a99b..47038ad 100644 (file)
@@ -330,17 +330,7 @@ mark_stmt_if_obviously_necessary (tree stmt, bool aggressive)
       return;
 
     case COND_EXPR:
-      if (GOTO_DESTINATION (COND_EXPR_THEN (stmt))
-         == GOTO_DESTINATION (COND_EXPR_ELSE (stmt)))
-       {
-         /* A COND_EXPR is obviously dead if the target labels are the same.
-            We cannot kill the statement at this point, so to prevent the
-            statement from being marked necessary, we replace the condition
-            with a constant.  The stmt is killed later on in cfg_cleanup.  */
-         COND_EXPR_COND (stmt) = integer_zero_node;
-         modify_stmt (stmt);
-         return;
-       }
+      gcc_assert (EDGE_COUNT (bb_for_stmt (stmt)->succs) == 2);
       /* Fall through.  */
 
     case SWITCH_EXPR: