aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-06 06:56:50 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-06 06:56:50 -0400
commit2bb81c86deadeb3c95eff414c9a44c73125b0ae5 (patch)
treefeca69f1f868da962d8c11b396864d8421b725f0 /gcc
parent6e87e69e8f877f51f8cf15f10805a83f59ddb7c1 (diff)
downloadgcc-2bb81c86deadeb3c95eff414c9a44c73125b0ae5.zip
gcc-2bb81c86deadeb3c95eff414c9a44c73125b0ae5.tar.gz
gcc-2bb81c86deadeb3c95eff414c9a44c73125b0ae5.tar.bz2
(record_jump_cond): Rehash OP1 if OP0's insert_regs returns nonzero.
From-SVN: r5631
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cse.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index beb5a76..4fbcb28 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -5621,6 +5621,12 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
{
rehash_using_reg (op0);
op0_hash_code = HASH (op0, mode);
+
+ /* If OP0 is contained in OP1, this changes its hash code
+ as well. Faster to rehash than to check, except
+ for the simple case of a constant. */
+ if (! CONSTANT_P (op1))
+ op1_hash_code = HASH (op1,mode);
}
op0_elt = insert (op0, NULL_PTR, op0_hash_code, mode);