SPIRV-Tools/test
Greg Fischer 684997eb72 DeadInsertElim: Detect and DCE dead Inserts
This adds Dead Insert Elimination to the end of the
--eliminate-insert-extract pass. See the new tests for examples of code
that will benefit.

Essentially, this removes OpCompositeInsert instructions which are not
used, either because there is no instruction which uses the value at the
index it is inserted, or because a subsequent insert intercepts any such
use.

This code has been seen to remove significant amounts of dead code from
real-life HLSL shaders being ported to Vulkan. In fact, it is needed to
remove dead texture samples which cause Vulkan validation layer errors
(unbound textures and samplers) if not removed . Such DCE is thus
required for fxc equivalence and legalization.

This analysis operates across "chains" of Inserts which can also contain
Phi instructions.
2018-01-25 16:07:21 -05:00
..
comp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
link Linker code cleanups 2018-01-05 13:28:44 -05:00
opt DeadInsertElim: Detect and DCE dead Inserts 2018-01-25 16:07:21 -05:00
scripts Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
stats Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
util Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
val Validator: restricted some atomic ops for shaders 2018-01-24 14:06:06 -08:00
assembly_context_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
assembly_format_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
binary_destroy_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
binary_endianness_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
binary_header_get_test.cpp Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
binary_parse_test.cpp Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
binary_strnlen_s_test.cpp Support building under CYGWIN 2016-12-21 10:34:23 -05:00
binary_to_text_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
binary_to_text.literal_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
bit_stream.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
c_interface_test.cpp Move SetContextMessageConsumer into libspirv namespace 2017-11-23 13:56:12 -05:00
CMakeLists.txt Add asm, dis support for DebugInfo extended instruction set 2017-12-22 09:39:36 -05:00
comment_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
cpp_interface_test.cpp Add SpirvTools::Validate that takes an options object 2017-03-17 12:48:51 -04:00
diagnostic_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
enum_set_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
enum_string_mapping_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
ext_inst.debuginfo_test.cpp Add asm, dis support for DebugInfo extended instruction set 2017-12-22 09:39:36 -05:00
ext_inst.glsl_test.cpp Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
ext_inst.opencl_test.cpp Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
fix_word_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
generator_magic_number_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
hex_float_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
huffman_codec.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
immediate_int_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
libspirv_macros_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
log_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
move_to_front_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
name_mapper_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
named_id_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
opcode_make_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
opcode_require_capabilities_test.cpp Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
opcode_split_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
opcode_table_get_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
operand_capabilities_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
operand_pattern_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
operand_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
operand-class-test-coverage.csv Fix operand class test coverage table. 2016-09-23 11:58:25 -04:00
parse_number_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
preserve_numeric_ids_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
software_version_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
string_utils_test.cpp Validator checks if operands require extension 2017-03-14 13:39:43 -04:00
target_env_test.cpp Support OpenCL 1.2 and 2.0 target environments 2017-12-12 11:35:39 -05:00
test_fixture.h Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_advance_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_destroy_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_literal_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_start_new_inst_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_to_binary_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.annotation_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.barrier_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.constant_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.control_flow_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.debug_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.device_side_enqueue_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.extension_test.cpp Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
text_to_binary.function_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_to_binary.group_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_to_binary.image_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.literal_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
text_to_binary.memory_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.misc_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.mode_setting_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.pipe_storage_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.subgroup_dispatch_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_to_binary.type_declaration_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
text_word_get_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
unit_spirv.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
unit_spirv.h Support OpenCL 1.2 and 2.0 target environments 2017-12-12 11:35:39 -05:00