From: Roger Sayle Date: Tue, 23 Sep 2003 15:49:53 +0000 (+0000) Subject: jcf-write.c (generate_bytecode_insns): Optimize binary operations with equal operands... X-Git-Tag: releases/gcc-3.4.0~3576 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=87750fef007105152e570dc153ef04df5445ddc4;p=thirdparty%2Fgcc.git jcf-write.c (generate_bytecode_insns): Optimize binary operations with equal operands without side-effects. * jcf-write.c (generate_bytecode_insns): Optimize binary operations with equal operands without side-effects. From-SVN: r71684 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 7ed9f4bb1d10..6f127f3df009 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2003-09-23 Roger Sayle + + * jcf-write.c (generate_bytecode_insns): Optimize binary operations + with equal operands without side-effects. + 2003-09-22 Jeff Sturm * decl.c (java_init_decl_processing): Don't emit otable decls diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 82c77b1c8310..aed6eb9773b7 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -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