diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-25 19:21:18 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-25 19:21:18 -0400 |
commit | af3869c1cca932fb4696a49aae03fa8fa032d618 (patch) | |
tree | c111a3a3b5af357fa0a2c4f891e147e50a597d3c | |
parent | b278301b1b1724a1edb673afafc8c90e211f1906 (diff) | |
download | gcc-af3869c1cca932fb4696a49aae03fa8fa032d618.zip gcc-af3869c1cca932fb4696a49aae03fa8fa032d618.tar.gz gcc-af3869c1cca932fb4696a49aae03fa8fa032d618.tar.bz2 |
(record_jump_cond): Don't do anything if OP0 and OP1 are already
equivalent.
From-SVN: r7984
-rw-r--r-- | gcc/cse.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -5805,6 +5805,13 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality) op0_elt = lookup (op0, op0_hash, mode); op1_elt = lookup (op1, op1_hash, mode); + /* If both operands are already equivalent or if they are not in the + table but are identical, do nothing. */ + if ((op0_elt != 0 && op1_elt != 0 + && op0_elt->first_same_value == op1_elt->first_same_value) + || op0 == op1 || rtx_equal_p (op0, op1)) + return; + /* If we aren't setting two things equal all we can do is save this comparison. Similarly if this is floating-point. In the latter case, OP1 might be zero and both -0.0 and 0.0 are equal to it. |