SPIRV-Tools/test
Steven Perron 19264ef42c
Have PredicateBlocks jump the existing merge blocks. (#1849)
* Refactor PredicateBlocks

Refactor PredicateBlocks so that we know which constructs a return
is contained in.  Will be used later.

* Have PredicateBlocks jump the existing merge blocks.

In PredicateBlocks, we currently skip instructions with side effects,
but it still follows the same control flow (sort-of).  This causes a
problem, when we are trying to predicate code in a loop.  We skip all
of the code with side effects (IV increment), but still follow the
same control flow (jump back the start of the loop).  This creates an
infinite loop because the code will keep jumping back to the start of
the loop without changing the values that effect the exit condition.

This is a large change to merge-return.  When predicating a block that
is in a loop or merge construct, it will jump to the merge block of the
construct.  Once out of all constructs we will generate code as we did
before.
2018-08-21 12:04:08 -04:00
..
comp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fuzzers Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
link Fixup readabilty/inheritance warnings (#1805) 2018-08-07 09:10:03 -04:00
opt Have PredicateBlocks jump the existing merge blocks. (#1849) 2018-08-21 12:04:08 -04:00
scripts Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
stats Remove unused stats maps and parameters (#1828) 2018-08-13 16:45:39 -04:00
tools Add testing framework for tools. 2018-08-17 15:03:14 -04:00
util Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
val Fix EvalInt32IfConst to fail on type instructions. 2018-08-21 11:59:00 -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 source/message.h (#1838) 2018-08-14 15:41:21 -04: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 Cleanup includes. (#1795) 2018-08-03 15:06:09 -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 Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
operand_pattern_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -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 Cleanup includes. (#1795) 2018-08-03 15:06:09 -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