]> gcc.gnu.org Git - gcc.git/commitdiff
jcf-write.c (generate_bytecode_insns): Optimize binary operations with equal operands...
authorRoger Sayle <roger@eyesopen.com>
Tue, 23 Sep 2003 15:49:53 +0000 (15:49 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 23 Sep 2003 15:49:53 +0000 (15:49 +0000)
* jcf-write.c (generate_bytecode_insns): Optimize binary operations
with equal operands without side-effects.

From-SVN: r71684

gcc/java/ChangeLog
gcc/java/jcf-write.c

index 7ed9f4bb1d10267fbcdc7745e31bc25d61e2eb6e..6f127f3df009a7020d2625ae7ba6cbc665bf6fd6 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-23  Roger Sayle  <roger@eyesopen.com>
+
+       * jcf-write.c (generate_bytecode_insns): Optimize binary operations
+       with equal operands without side-effects.
+
 2003-09-22  Jeff Sturm  <jsturm@one-point.com>
 
        * decl.c (java_init_decl_processing): Don't emit otable decls
index 82c77b1c831014fc576f0dee620c77a8adb035d9..aed6eb9773b7ee3b79e517b648322768b26474db 100644 (file)
@@ -2095,10 +2095,10 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state)
       tree arg0 = TREE_OPERAND (exp, 0);
       tree arg1 = TREE_OPERAND (exp, 1);
       jopcode += adjust_typed_op (type, 3);
-      if (arg0 == arg1 && TREE_CODE (arg0) == SAVE_EXPR)
+      if (arg0 != NULL_TREE && operand_equal_p (arg0, arg1, 0))
        {
          /* fold may (e.g) convert 2*x to x+x. */
-         generate_bytecode_insns (TREE_OPERAND (arg0, 0), target, state);
+         generate_bytecode_insns (arg0, target, state);
          emit_dup (TYPE_PRECISION (TREE_TYPE (arg0)) > 32 ? 2 : 1, 0, state);
        }
       else
This page took 0.082884 seconds and 5 git commands to generate.