SPIRV-Tools/source/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_stream.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
bit_stream.h Fixes #1521: PadToWord() should use std::move() in && variant 2018-04-25 22:03:14 -04:00
bit_vector.cpp Vector DCE (#1512) 2018-04-23 11:13:07 -04:00
bit_vector.h Vector DCE (#1512) 2018-04-23 11:13:07 -04:00
bitutils.h Add barrier instructions validation pass 2018-02-05 13:14:55 -05:00
hex_float.h hex_float: Use max_digits10 for the float precision 2018-04-03 12:53:10 -04:00
huffman_codec.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
ilist_node.h Vector DCE (#1512) 2018-04-23 11:13:07 -04:00
ilist.h Change merge return pass to handle structured cfg. 2018-03-19 13:49:04 -04:00
move_to_front.h Fixed harmless uninit var warning 2018-01-31 17:49:01 -05:00
parse_number.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
parse_number.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
small_vector.h Small vector optimization for operands. 2018-06-12 13:41:08 -04:00
string_utils.cpp Added option --preserve-numeric-ids to tools/spirv-as 2017-04-13 14:13:33 -04:00
string_utils.h Validator checks if operands require extension 2017-03-14 13:39:43 -04:00
timer.cpp Add --time-report to spirv-opt 2018-03-20 21:30:06 -04:00
timer.h Add --time-report to spirv-opt 2018-03-20 21:30:06 -04:00