summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2006-06-08 15:40:48 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2006-06-08 15:40:48 +0000
commit33b881ca3a5ced6c254d3570dea2282ed6a7534d (patch)
treefbbdd2212c6d4f150fe51ab35d8f06e6f18863fc /gcc/expmed.c
parent313ab5ee9c2616aa6c3058cf992d2f69b52fc2db (diff)
downloadgcc-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.c6
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