diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2006-06-08 15:40:48 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2006-06-08 15:40:48 +0000 |
commit | 33b881ca3a5ced6c254d3570dea2282ed6a7534d (patch) | |
tree | fbbdd2212c6d4f150fe51ab35d8f06e6f18863fc /gcc/expmed.c | |
parent | 313ab5ee9c2616aa6c3058cf992d2f69b52fc2db (diff) | |
download | gcc-33b881ca3a5ced6c254d3570dea2282ed6a7534d.tar.gz |
re PR middle-end/27733 (Large compile time regression)
2006-06-08 Paolo Bonzini <bonzini@gnu.org>
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
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 6 |
1 files changed, 5 insertions, 1 deletions
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 |