From af3869c1cca932fb4696a49aae03fa8fa032d618 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 25 Aug 1994 19:21:18 -0400 Subject: (record_jump_cond): Don't do anything if OP0 and OP1 are already equivalent. From-SVN: r7984 --- gcc/cse.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc') diff --git a/gcc/cse.c b/gcc/cse.c index 4902b89..a4de3477 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -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. -- cgit v1.1