]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* fold-const.c (fold): Reorder tests for conditional expressions.
authorOlivier Hainque <hainque@act-europe.fr>
Mon, 14 Apr 2003 21:09:44 +0000 (23:09 +0200)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 14 Apr 2003 21:09:44 +0000 (17:09 -0400)
From-SVN: r65590

gcc/ChangeLog
gcc/fold-const.c

index 0ffd927494a71c4aea7fd5e292143c03b88dce73..d5b5ca7a664a675ac3c6935251853acdc269b456 100644 (file)
@@ -1,5 +1,7 @@
 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
 
+        * fold-const.c (fold): Reorder tests for conditional expressions.
+
         * expr.c (highest_pow2_factor): Return unsigned.
         * expr.h (offset_address): Likewise.
         * emit-rtl.c (offset_address): POW2 argument now unsigned.
index 95812a2e13c302079d2c3ef0625d69ea09288260..065a4fc527d32b5276558e1af480dd5ec768c89d 100644 (file)
@@ -5063,6 +5063,14 @@ fold (expr)
                            fold (build1 (code, type, integer_one_node)),
                            fold (build1 (code, type, integer_zero_node))));
    }
+  else if (TREE_CODE_CLASS (code) == '<'
+          && TREE_CODE (arg0) == COMPOUND_EXPR)
+    return build (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0),
+                 fold (build (code, type, TREE_OPERAND (arg0, 1), arg1)));
+  else if (TREE_CODE_CLASS (code) == '<'
+          && TREE_CODE (arg1) == COMPOUND_EXPR)
+    return build (COMPOUND_EXPR, type, TREE_OPERAND (arg1, 0),
+                 fold (build (code, type, arg0, TREE_OPERAND (arg1, 1))));
   else if (TREE_CODE_CLASS (code) == '2'
           || TREE_CODE_CLASS (code) == '<')
     {
@@ -5098,14 +5106,6 @@ fold (expr)
          fold_binary_op_with_conditional_arg (code, type, arg0, arg1,
                                               /*cond_first_p=*/1);
     }
-  else if (TREE_CODE_CLASS (code) == '<'
-          && TREE_CODE (arg0) == COMPOUND_EXPR)
-    return build (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0),
-                 fold (build (code, type, TREE_OPERAND (arg0, 1), arg1)));
-  else if (TREE_CODE_CLASS (code) == '<'
-          && TREE_CODE (arg1) == COMPOUND_EXPR)
-    return build (COMPOUND_EXPR, type, TREE_OPERAND (arg1, 0),
-                 fold (build (code, type, arg0, TREE_OPERAND (arg1, 1))));
 
   switch (code)
     {