tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if" statements that always...
authorKazu Hirata <kazu@cs.umass.edu>
Mon, 8 Nov 2004 15:02:14 +0000 (15:02 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Mon, 8 Nov 2004 15:02:14 +0000 (15:02 +0000)
* tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
statements that always trigger.

From-SVN: r90267

gcc/ChangeLog
gcc/tree-if-conv.c

index 9827936bc104d53b4f2332eaa14c01ec088e67a6..94ab14ac90401436bf663d142bcc32ae4742be63 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
+       statements that always trigger.
+
 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
index 89592f0ce2aafc55229d521fd813e9a1d0844e0b..371d0a6df2a872bf53e93647cadcbefdcfea35a9 100644 (file)
@@ -271,7 +271,7 @@ static void
 tree_if_convert_cond_expr (struct loop *loop, tree stmt, tree cond,
                           block_stmt_iterator *bsi)
 {
-  tree then_clause, else_clause, c, new_cond;
+  tree then_clause, else_clause, c, c2, new_cond;
   new_cond = NULL_TREE;
 
   gcc_assert (TREE_CODE (stmt) == COND_EXPR);
@@ -290,27 +290,23 @@ tree_if_convert_cond_expr (struct loop *loop, tree stmt, tree cond,
     }
 
   /* Add new condition into destination's predicate list.  */
-  if (then_clause)
-    /* if 'c' is true then then_clause is reached.  */
-    new_cond = add_to_dst_predicate_list (loop, then_clause, cond, 
-                                         unshare_expr (c), bsi);
 
-  if (else_clause)
-    {
-      tree c2;
-      if (!is_gimple_reg(c) && is_gimple_condexpr (c))
-       {
-         tree new_stmt;
-         new_stmt = ifc_temp_var (TREE_TYPE (c), unshare_expr (c));
-         bsi_insert_before (bsi, new_stmt, BSI_SAME_STMT);
-         c = TREE_OPERAND (new_stmt, 0);
-       }
+  /* If 'c' is true then then_clause is reached.  */
+  new_cond = add_to_dst_predicate_list (loop, then_clause, cond,
+                                       unshare_expr (c), bsi);
 
-      /* if 'c' is false then else_clause is reached.  */
-      c2 = invert_truthvalue (unshare_expr (c));
-      add_to_dst_predicate_list (loop, else_clause, cond, c2, bsi);
+  if (!is_gimple_reg(c) && is_gimple_condexpr (c))
+    {
+      tree new_stmt;
+      new_stmt = ifc_temp_var (TREE_TYPE (c), unshare_expr (c));
+      bsi_insert_before (bsi, new_stmt, BSI_SAME_STMT);
+      c = TREE_OPERAND (new_stmt, 0);
     }
 
+  /* If 'c' is false then else_clause is reached.  */
+  c2 = invert_truthvalue (unshare_expr (c));
+  add_to_dst_predicate_list (loop, else_clause, cond, c2, bsi);
+
   /* Now this conditional statement is redundant. Remove it.
      But, do not remove exit condition! Update exit condition
      using new condition.  */