SPIRV-Tools/source/util
pd-valve d18d0d92e5
Optimize DefUseManager allocations (#4709)
* Optimize DefUseManager allocations

Saves around 30-35% of compilation time.

For inst->use_ids, use a pool linked list instead of allocating vectors for every instruction.  For inst->uses, use a "PooledLinkedList"' -- a linked list that has shared storage for all nodes.  Neither re-use nodes, instead we do a bulk compaction operation when too much memory is being wasted (tuneable).

Includes separate PooledLinkedList templated datastructure, a very special case construct, but split out to make the code a little easier to understand.
2022-02-15 19:17:30 -05:00
..
bit_vector.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
bit_vector.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
bitutils.h Support constant-folding UConvert and SConvert (#2960) 2019-10-16 16:29:55 -04:00
hash_combine.h Optimize Type::HashValue (#4707) 2022-02-15 18:57:39 +00:00
hex_float.h Avoid uninitialised read when parsing hex float (#4646) 2021-12-08 11:09:25 -05:00
ilist_node.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
ilist.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
make_unique.h Use MakeUnique. (#1837) 2018-08-14 15:01:50 -04:00
parse_number.cpp Use MakeUnique. (#1837) 2018-08-14 15:01:50 -04:00
parse_number.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
pooled_linked_list.h Optimize DefUseManager allocations (#4709) 2022-02-15 19:17:30 -05:00
small_vector.h Optimize Type::HashValue (#4707) 2022-02-15 18:57:39 +00:00
string_utils.cpp Add option for the max id bound. (#1870) 2018-09-10 11:49:41 -04:00
string_utils.h Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
timer.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
timer.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00