aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-08-31 13:37:09 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-08-31 11:37:09 +0000
commit6c72e55df00195f1c955e7ffdd76386613f69560 (patch)
tree336c18e36fce422c94a0c239d4c005749839b801 /gcc
parent5020c88e539e0212beec3568fb088ab95f484022 (diff)
downloadgcc-6c72e55df00195f1c955e7ffdd76386613f69560.zip
gcc-6c72e55df00195f1c955e7ffdd76386613f69560.tar.gz
gcc-6c72e55df00195f1c955e7ffdd76386613f69560.tar.bz2
IPA ICF: make type cache a static field sem_item.
2018-08-31 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_item::add_type): Use sem_item::m_type_hash_cache. * ipa-icf.h: Move the cache from sem_item_optimizer to sem_item. From-SVN: r264014
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-icf.c6
-rw-r--r--gcc/ipa-icf.h6
3 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1fbcbd5..62918c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-08-31 Martin Liska <mliska@suse.cz>
+
+ * ipa-icf.c (sem_item::add_type): Use
+ sem_item::m_type_hash_cache.
+ * ipa-icf.h: Move the cache from sem_item_optimizer
+ to sem_item.
+
2018-08-31 Nathan Sidwell <nathan@acm.org>
* doc/extend.texi (Backwards Compatibility): Remove implicit
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 39b96ba..8a6a7a3f 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -227,6 +227,8 @@ void sem_item::set_hash (hashval_t hash)
m_hash_set = true;
}
+hash_map<const_tree, hashval_t> sem_item::m_type_hash_cache;
+
/* Semantic function constructor that uses STACK as bitmap memory stack. */
sem_function::sem_function (bitmap_obstack *stack)
@@ -1587,7 +1589,7 @@ sem_item::add_type (const_tree type, inchash::hash &hstate)
return;
}
- hashval_t *val = optimizer->m_type_hash_cache.get (type);
+ hashval_t *val = m_type_hash_cache.get (type);
if (!val)
{
@@ -1607,7 +1609,7 @@ sem_item::add_type (const_tree type, inchash::hash &hstate)
hstate2.add_int (nf);
hash = hstate2.end ();
hstate.add_hwi (hash);
- optimizer->m_type_hash_cache.put (type, hash);
+ m_type_hash_cache.put (type, hash);
}
else
hstate.add_hwi (*val);
diff --git a/gcc/ipa-icf.h b/gcc/ipa-icf.h
index 622aebc..a64b385 100644
--- a/gcc/ipa-icf.h
+++ b/gcc/ipa-icf.h
@@ -281,6 +281,9 @@ private:
/* Initialize internal data structures. Bitmap STACK is used for
bitmap memory allocation process. */
void setup (bitmap_obstack *stack);
+
+ /* Because types can be arbitrarily large, avoid quadratic bottleneck. */
+ static hash_map<const_tree, hashval_t> m_type_hash_cache;
}; // class sem_item
class sem_function: public sem_item
@@ -524,9 +527,6 @@ public:
/* Gets a congruence class group based on given HASH value and TYPE. */
congruence_class_group *get_group_by_hash (hashval_t hash,
sem_item_type type);
-
- /* Because types can be arbitrarily large, avoid quadratic bottleneck. */
- hash_map<const_tree, hashval_t> m_type_hash_cache;
private:
/* For each semantic item, append hash values of references. */