SPIRV-Tools/test
Steven Perron 497958d899 Removing HLSLCounterBuffer decorations when not needed. (#1954)
The HlslCounterBufferGOOGLE that was introduced changed the OpDecorateId
so that is can now reference an id other than the target.  If that other
id is used only in the decoration, then the definition of the id will be
removed because decoration do not count as real uses.

However, if the target of the decoration is still live the decoration
will not be removed.  This leaves a reference to an id that is not
defined.

There are two solutions to consider.  The first is that is the decoration
is kept, then the definition of the id should be kept live.  Implementing
this change would be involved because the way ADCE handles decorations
will have to be reimplemented.

The other solution is to remove the decoration the id is otherwise dead.
This works for this specific case.  Also this is the more desirable
behaviour in this case.  The id will always be the id of a variable that
belongs to a descriptor set.  If that variable is not bound and we do
not remove it, the driver will complain.

I chose to implement the second solution.  The first will be left to when
a case for it comes up.

Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1885.
2018-10-05 08:23:09 -04:00
..
comp Remove SetContextMessageConsumer from markv_codec_test (#1926) 2018-09-26 10:33:16 -07:00
fuzzers BUILD.gn: Make a better interface with dependents. (#1877) 2018-09-06 10:50:27 -04:00
link Fixup readabilty/inheritance warnings (#1805) 2018-08-07 09:10:03 -04:00
opt Removing HLSLCounterBuffer decorations when not needed. (#1954) 2018-10-05 08:23:09 -04:00
scripts Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
stats Remove stats use of internal API (#1924) 2018-09-26 10:32:05 -07:00
tools Allow 0 as argument to scalar replacement. (#1917) 2018-09-26 09:58:28 -04:00
util Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
val Validator: function scope variable at start of entry block #1923 2018-10-04 15:05:47 -04:00
assembly_context_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
assembly_format_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_destroy_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_endianness_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_header_get_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_parse_test.cpp Remove use of SetContextMessageConsumer from binary_parse_test (#1925) 2018-09-26 13:17:36 -07:00
binary_strnlen_s_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_to_text_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary_to_text.literal_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
bit_stream.cpp Move bit_stream, move_to_front and huffman_codec. (#1833) 2018-08-14 09:52:05 -04:00
c_interface_test.cpp Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
CMakeLists.txt Add testing framework for tools. 2018-08-17 15:03:14 -04:00
comment_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
cpp_interface_test.cpp Validate the input to Optimizer::Run (#1799) 2018-08-08 11:16:19 -04:00
diagnostic_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
enum_set_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
enum_string_mapping_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ext_inst.debuginfo_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ext_inst.glsl_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ext_inst.opencl_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fix_word_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
generator_magic_number_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hex_float_test.cpp Fix sign mismatch warning 2018-08-31 17:51:43 -04:00
huffman_codec.cpp Move bit_stream, move_to_front and huffman_codec. (#1833) 2018-08-14 09:52:05 -04:00
immediate_int_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
libspirv_macros_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
log_test.cpp Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
move_to_front_test.cpp Move bit_stream, move_to_front and huffman_codec. (#1833) 2018-08-14 09:52:05 -04:00
name_mapper_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
named_id_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode_make_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode_require_capabilities_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode_split_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode_table_get_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
operand_capabilities_test.cpp Add support for Nvidia Turing extensions 2018-09-19 20:46:14 -04:00
operand_pattern_test.cpp Update Dim capabilities 2018-09-06 13:41:31 -04:00
operand_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
operand-class-test-coverage.csv Fix operand class test coverage table. 2016-09-23 11:58:25 -04:00
parse_number_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
preserve_numeric_ids_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
software_version_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
string_utils_test.cpp Move utils/ to spvtools::utils 2018-07-06 16:47:46 -04:00
target_env_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
test_fixture.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_advance_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_destroy_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_literal_test.cpp Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
text_start_new_inst_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.annotation_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.barrier_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.constant_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.control_flow_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.debug_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.device_side_enqueue_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.extension_test.cpp Update Dim capabilities 2018-09-06 13:41:31 -04:00
text_to_binary.function_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.group_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.image_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.literal_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.memory_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.misc_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.mode_setting_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.pipe_storage_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.reserved_sampling_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.subgroup_dispatch_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_to_binary.type_declaration_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
text_word_get_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
timer_test.cpp Move utils/ to spvtools::utils 2018-07-06 16:47:46 -04:00
unit_spirv.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
unit_spirv.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00