diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-09-23 15:49:53 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-09-23 15:49:53 +0000 |
commit | 87750fef007105152e570dc153ef04df5445ddc4 (patch) | |
tree | eb45ea4f1abb566078d25b7a306a02cfcafd35a4 /gcc/java/jcf-write.c | |
parent | ac20c67af10d2f8aadabeb255ff66f31364e9e6d (diff) | |
download | gcc-87750fef007105152e570dc153ef04df5445ddc4.zip gcc-87750fef007105152e570dc153ef04df5445ddc4.tar.gz gcc-87750fef007105152e570dc153ef04df5445ddc4.tar.bz2 |
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
Diffstat (limited to 'gcc/java/jcf-write.c')
-rw-r--r-- | gcc/java/jcf-write.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 82c77b1..aed6eb97 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 |