From 33b881ca3a5ced6c254d3570dea2282ed6a7534d Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 8 Jun 2006 15:40:48 +0000 Subject: [PATCH] re PR middle-end/27733 (Large compile time regression) 2006-06-08 Paolo Bonzini PR middle-end/27733 * expmed.c (struct alg_hash_entry): Fix type of field T to match synth_mult argument. (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. From-SVN: r114488 --- gcc/ChangeLog | 7 +++++++ gcc/expmed.c | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d840d64438d..654c990657e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-06-08 Paolo Bonzini + + PR middle-end/27733 + * expmed.c (struct alg_hash_entry): Fix type of field T + to match synth_mult argument. + (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. + 2006-06-08 Maxim Kuvyrkov PR target/27863 diff --git a/gcc/expmed.c b/gcc/expmed.c index 56c0d24bd66..2e8906eb7a9 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2395,7 +2395,7 @@ struct algorithm /* The entry for our multiplication cache/hash table. */ struct alg_hash_entry { /* The number we are multiplying by. */ - unsigned int t; + unsigned HOST_WIDE_INT t; /* The mode in which we are multiplying something by T. */ enum machine_mode mode; @@ -2410,7 +2410,11 @@ struct alg_hash_entry { }; /* The number of cache/hash entries. */ +#if HOST_BITS_PER_WIDE_INT == 64 +#define NUM_ALG_HASH_ENTRIES 1031 +#else #define NUM_ALG_HASH_ENTRIES 307 +#endif /* Each entry of ALG_HASH caches alg_code for some integer. This is actually a hash table. If we have a collision, that the older