mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-02 08:40:26 +08:00
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
This commit is contained in:
parent
5020c88e53
commit
6c72e55df0
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user