SPIRV-Tools/test/util
Steven Perron d42f65e7c1 Use a bit vector in ADCE
The unordered_set in ADCE that holds all of the live instructions takes
a very long time to be destroyed.  In some shaders, it takes over 40% of
the time.

If we look at the unique ids of the live instructions, I believe they
are dense enough make a simple bit vector a good choice for to hold that
data.  When I check the density of the bit vector for larger shaders, we
are usually using less than 4 bytes per element in the vector, and
almost always less than 16.

So, in this commit, I introduce a simple bit vector class, and
use it in ADCE.

This help improve the compile time for some shaders on windows by the
40% mentioned above.

Contributes to https://github.com/KhronosGroup/SPIRV-Tools/issues/1328.
2018-04-13 16:38:02 -04:00
..
bit_vector_test.cpp Use a bit vector in ADCE 2018-04-13 16:38:02 -04:00
CMakeLists.txt Use a bit vector in ADCE 2018-04-13 16:38:02 -04:00
ilist_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00