SPIRV-Tools/test/util
Steven Perron 1f7b1f1bf7 Small vector optimization for operands.
We replace the std::vector in the Operand class by a new class that does
a small size optimization.  This helps improve compile time on Windows.

Tested on three sets of shaders.  Trying various values for the small
vector.  The optimal value for the operand class was 2.  However, for
the Instruction class, using an std::vector was optimal.  Size of "0"
means that an std::vector was used.

                Instruction size
	        0      4      8
Operand Size

0               489    544    684
1               593    487
2               469    570
4               473
8               505

This is a single thread run of ~120 shaders.  For the multithreaded run
the results were the similar.  The basline time was ~62sec.  The
optimal configuration was an 2 for the OperandData and an
std::vector for the OperandList with a compile time of ~38sec.  Similar
expiriments were done with other sets of shaders.  The compile time still
improved, but not as much.

Contributes to https://github.com/KhronosGroup/SPIRV-Tools/issues/1609.
2018-06-12 13:41:08 -04:00
..
bit_vector_test.cpp Vector DCE (#1512) 2018-04-23 11:13:07 -04:00
CMakeLists.txt Small vector optimization for operands. 2018-06-12 13:41:08 -04:00
ilist_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
small_vector_test.cpp Small vector optimization for operands. 2018-06-12 13:41:08 -04:00