hash-table.h (hash_table): Add Lazy template parameter defaulted to false...
authorJakub Jelinek <jakub@redhat.com>
Thu, 21 Mar 2019 22:00:04 +0000 (23:00 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 21 Mar 2019 22:00:04 +0000 (23:00 +0100)
commit36a3a7a3726c8b65eeceb6eb4a8946e0cd5650a9
treece1f9656a446322fdb783d3909c677132ee5d92a
parent2e4182ae07e16f30b8917af3c0581a6c8af31357
hash-table.h (hash_table): Add Lazy template parameter defaulted to false...

* hash-table.h (hash_table): Add Lazy template parameter defaulted
to false, if true, don't alloc_entries during construction, but defer
it to the first method that needs m_entries allocated.
(hash_table::hash_table, hash_table::~hash_table,
hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
hash_table::clear_slot, hash_table::traverse_noresize,
hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
* hash-set.h (hash_set): Add Lazy template parameter defaulted to
false.
(hash_set::contains): If Lazy is true, use find_slot_with_hash with
NO_INSERT instead of find_with_hash.
(hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
hash_set::m_table): Add Lazy to template params of hash_table.
(gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
* attribs.c (test_attribute_exclusions): Likewise.
* hash-set-tests.c (test_set_of_strings): Add iterator tests for
hash_set.  Add tests for hash_set with Lazy = true.
c-family/
* c-common.c (per_file_includes_t): Use false as Lazy in hash_set
template param.
jit/
* jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy
in hash_set template param.

From-SVN: r269859
gcc/ChangeLog
gcc/attribs.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/hash-set-tests.c
gcc/hash-set.h
gcc/hash-table.h
gcc/jit/ChangeLog
gcc/jit/jit-recording.c