SPIRV-Tools/test/fuzz
Alastair Donaldson 8013d477ae
spirv-fuzz: add dead blocks (#3135)
This adds a new kind of fact to the fact manager that knows whether a
block is dead - i.e. guaranteed to be statically unreachable - and a
new transformation for adding a selection construct to a CFG that
conditionally branches to a fresh, dead block, such that the branch
will never be dynamically taken. Transformations that may create new
blocks ('split block' and 'outline function') are updated to propagate
dead block facts to newly-created blocks where appropriate. A fuzzer
pass randomly adds dead blocks to the module.

Future transformations will be able to exploit the fact that such
blocks are known to be dead.
2020-01-13 22:04:01 +00:00
..
CMakeLists.txt spirv-fuzz: add dead blocks (#3135) 2020-01-13 22:04:01 +00:00
data_synonym_transformation_test.cpp spirv-fuzz: simplify transformation for replacing an id with a synonym (#3020) 2019-11-07 16:19:06 +00:00
equivalence_relation_test.cpp spirv-fuzz: make equivalence classes deterministic (#3011) 2019-11-05 15:34:05 +00:00
fact_manager_test.cpp spirv-fuzz: better computation of data synonym facts (#3010) 2019-11-05 16:45:14 +00:00
fuzz_test_util.cpp spirv-fuzz: add dead blocks (#3135) 2020-01-13 22:04:01 +00:00
fuzz_test_util.h spirv-fuzz: Improve debugging facilities (#3074) 2019-11-27 18:05:56 +00:00
fuzzer_pass_add_useful_constructs_test.cpp Represent uniform facts via descriptor set and binding. (#2681) 2019-06-19 20:45:14 +01:00
fuzzer_pass_donate_modules_test.cpp spirv-fuzz: Add fuzzer pass to perform module donation (#3117) 2020-01-07 08:39:55 +00:00
fuzzer_replayer_test.cpp spirv-fuzz: Add fuzzer pass to perform module donation (#3117) 2020-01-07 08:39:55 +00:00
fuzzer_shrinker_test.cpp spirv-fuzz: Add fuzzer pass to perform module donation (#3117) 2020-01-07 08:39:55 +00:00
instruction_descriptor_test.cpp spirv-fuzz: fuzzer pass to adjust memory access operands (#2968) 2019-10-22 18:05:35 +01:00
transformation_add_constant_boolean_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_constant_composite_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_constant_scalar_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_dead_block_test.cpp spirv-fuzz: add dead blocks (#3135) 2020-01-13 22:04:01 +00:00
transformation_add_dead_break_test.cpp spirv-fuzz: do not allow a dead break to target an unreachable block (#2917) 2019-09-26 10:57:05 +01:00
transformation_add_dead_continue_test.cpp spirv-fuzz: Use validator to check break/continue dominance conditions (#3089) 2019-12-06 16:38:17 +00:00
transformation_add_function_test.cpp spirv-fuzz: Transformation to add a new function to a module (#3114) 2019-12-19 21:15:09 +00:00
transformation_add_global_undef_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_global_variable_test.cpp spirv-fuzz: Always add new globals to entry point interfaces (#3113) 2019-12-19 21:16:09 +00:00
transformation_add_no_contraction_decoration_test.cpp spirv-fuzz: Add fuzzer pass to add NoContraction decorations (#2950) 2019-10-11 09:15:47 +01:00
transformation_add_type_array_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_type_boolean_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_float_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_function_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_type_int_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_matrix_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_type_pointer_test.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_struct_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_add_type_vector_test.cpp spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 23:54:13 +00:00
transformation_composite_construct_test.cpp spirv-fuzz: better computation of data synonym facts (#3010) 2019-11-05 16:45:14 +00:00
transformation_composite_extract_test.cpp spirv-fuzz: better computation of data synonym facts (#3010) 2019-11-05 16:45:14 +00:00
transformation_copy_object_test.cpp Validate nested constructs (#3068) 2019-11-27 16:45:57 -05:00
transformation_merge_blocks_test.cpp spirv-fuzz: Fuzzer pass to merge blocks (#3097) 2019-12-12 15:27:40 +00:00
transformation_move_block_down_test.cpp Disallow movement of unreachable blocks. (#2700) 2019-06-26 15:32:25 +01:00
transformation_outline_function_test.cpp spirv-fuzz: Avoid passing access chains as parameters (#3112) 2019-12-19 17:34:36 +00:00
transformation_replace_boolean_constant_with_constant_binary_test.cpp spirv-fuzz: Rework id descriptors (#2959) 2019-10-11 10:13:06 +01:00
transformation_replace_constant_with_uniform_test.cpp spirv-fuzz: Rework id descriptors (#2959) 2019-10-11 10:13:06 +01:00
transformation_replace_id_with_synonym_test.cpp Validate nested constructs (#3068) 2019-11-27 16:45:57 -05:00
transformation_set_function_control_test.cpp spirv-fuzz: Add fuzzer pass to change function controls (#2951) 2019-10-11 07:10:47 +01:00
transformation_set_loop_control_test.cpp spirv-fuzz: Add fuzzer pass to change loop controls (#2949) 2019-10-10 13:34:38 +01:00
transformation_set_memory_operands_mask_test.cpp spirv-fuzz: fuzzer pass to adjust memory access operands (#2968) 2019-10-22 18:05:35 +01:00
transformation_set_selection_control_test.cpp spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
transformation_split_block_test.cpp spirv-fuzz: add dead blocks (#3135) 2020-01-13 22:04:01 +00:00
transformation_vector_shuffle_test.cpp spirv-fuzz: vector shuffle transformation (#3015) 2019-11-06 17:11:54 +00:00
uniform_buffer_element_descriptor_test.cpp Represent uniform facts via descriptor set and binding. (#2681) 2019-06-19 20:45:14 +01:00