Commit 6c72e55d by Martin Liska Committed by Martin Liska

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
parent 5020c88e
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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment