SPIRV-Tools/source/fuzz
Alastair Donaldson 5910bb8e94
spirv-fuzz: add transformation and pass to construct composites (#2941)
Adds a fuzzer pass and transformation to create a composite (array,
matrix, struct or vector) from available constituent components, and
inform the fact manager that each component of the new composite is
synonymous with the id that was used to construct it. This allows the
"replace id with synonym" pass to then replace uses of said ids with
uses of elements extracted from the composite.

Fixes #2858.
2019-10-08 14:04:10 +01:00
..
protobufs spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
CMakeLists.txt spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
data_descriptor.cpp Add 'copy object' transformation (#2766) 2019-08-05 18:00:13 +01:00
data_descriptor.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fact_manager.cpp Add 'copy object' transformation (#2766) 2019-08-05 18:00:13 +01:00
fact_manager.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
force_render_red.cpp spirv-fuzz: option to convert shader into a form that renders red (#2934) 2019-10-03 19:10:50 +01:00
force_render_red.h spirv-fuzz: option to convert shader into a form that renders red (#2934) 2019-10-03 19:10:50 +01:00
fuzzer_context.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_context.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass_add_dead_breaks.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
fuzzer_pass_add_dead_breaks.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass_add_dead_continues.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
fuzzer_pass_add_dead_continues.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass_add_useful_constructs.cpp spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
fuzzer_pass_add_useful_constructs.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass_adjust_selection_controls.cpp spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
fuzzer_pass_adjust_selection_controls.h spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
fuzzer_pass_apply_id_synonyms.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass_apply_id_synonyms.h Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
fuzzer_pass_construct_composites.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass_construct_composites.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass_copy_objects.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass_copy_objects.h Add fuzzer pass to copy objects (#2853) 2019-09-11 23:45:20 +01:00
fuzzer_pass_obfuscate_constants.cpp Rework management of probabilities in spirv-fuzz (#2839) 2019-09-10 15:02:25 +01:00
fuzzer_pass_obfuscate_constants.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass_permute_blocks.cpp Rework management of probabilities in spirv-fuzz (#2839) 2019-09-10 15:02:25 +01:00
fuzzer_pass_permute_blocks.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass_split_blocks.cpp Rework management of probabilities in spirv-fuzz (#2839) 2019-09-10 15:02:25 +01:00
fuzzer_pass_split_blocks.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_pass.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_pass.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_util.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer_util.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
fuzzer.h Shrinker for spirv-fuzz (#2708) 2019-07-07 08:55:30 +01:00
id_use_descriptor.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
id_use_descriptor.h Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
pseudo_random_generator.cpp Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
pseudo_random_generator.h Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
random_generator.cpp Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
random_generator.h Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
replayer.cpp Allow validation during spirv-fuzz replay (#2873) 2019-09-20 10:54:09 +01:00
replayer.h Allow validation during spirv-fuzz replay (#2873) 2019-09-20 10:54:09 +01:00
shrinker.cpp Allow validation during spirv-fuzz replay (#2873) 2019-09-20 10:54:09 +01:00
shrinker.h Allow validation during spirv-fuzz replay (#2873) 2019-09-20 10:54:09 +01:00
transformation_add_constant_boolean.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_constant_boolean.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_constant_scalar.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_constant_scalar.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_dead_break.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_break.h Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 2019-09-10 14:48:27 +01:00
transformation_add_dead_continue.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.h spirv-fuzz: Fixes to preconditions for adding dead break/continue edges (#2904) 2019-09-25 16:51:41 +01:00
transformation_add_type_boolean.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_boolean.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_float.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_float.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_int.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_int.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_pointer.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_add_type_pointer.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_construct_composite.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation_construct_composite.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation_copy_object.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation_copy_object.h spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation_move_block_down.cpp spirv-fuzz: preserve some analyses when permuting blocks (#2918) 2019-09-26 10:56:43 +01:00
transformation_move_block_down.h Disallow movement of unreachable blocks. (#2700) 2019-06-26 15:32:25 +01:00
transformation_replace_boolean_constant_with_constant_binary.cpp spirv-fuzz: do not replace boolean constant argument to OpPhi instruction (#2903) 2019-09-25 12:16:25 +01:00
transformation_replace_boolean_constant_with_constant_binary.h spirv-fuzz: do not replace boolean constant argument to OpPhi instruction (#2903) 2019-09-25 12:16:25 +01:00
transformation_replace_constant_with_uniform.cpp Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_replace_constant_with_uniform.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_replace_id_with_synonym.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation_replace_id_with_synonym.h spirv-fuzz: do not replace a pointer argument to a function call with a synonym (#2901) 2019-09-25 12:17:29 +01:00
transformation_set_selection_control.cpp spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
transformation_set_selection_control.h spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 2019-10-08 11:25:34 +01:00
transformation_split_block.cpp Add 'copy object' transformation (#2766) 2019-08-05 18:00:13 +01:00
transformation_split_block.h Add 'copy object' transformation (#2766) 2019-08-05 18:00:13 +01:00
transformation.cpp spirv-fuzz: add transformation and pass to construct composites (#2941) 2019-10-08 14:04:10 +01:00
transformation.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
uniform_buffer_element_descriptor.cpp Add 'copy object' transformation (#2766) 2019-08-05 18:00:13 +01:00
uniform_buffer_element_descriptor.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00