SPIRV-Tools/source/fuzz
Alastair Donaldson 0a07cd1c9a
Add fuzzer pass to replace ids with synonyms (#2857)
If the fuzzer's fact manager knows that ids A and B are synonymous, it
can replace a use of A with a use of B, so long as various conditions
hold (e.g. the definition of B must dominate the use of A, and it is
not legal to replace a use of an OpConstant in a struct's access chain
with a synonym that is not an OpConstant).

This change adds a fuzzer pass to sprinke such synonym replacements
through the module.
2019-09-18 20:47:08 +01:00
..
protobufs Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
CMakeLists.txt Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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
fuzzer_context.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
fuzzer_context.h Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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 Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +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_apply_id_synonyms.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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_copy_objects.cpp Add fuzzer pass to copy objects (#2853) 2019-09-11 23:45:20 +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 Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
fuzzer_pass.h Fix end comments in header files (#2829) 2019-09-02 17:31:27 -04:00
fuzzer_util.cpp Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 2019-09-10 14:48:27 +01:00
fuzzer_util.h Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 2019-09-10 14:48:27 +01:00
fuzzer.cpp Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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 Warn when input facts are invalid. (#2699) 2019-06-26 16:40:19 +01:00
replayer.h Warn when input facts are invalid. (#2699) 2019-06-26 16:40:19 +01:00
shrinker.cpp Shrinker for spirv-fuzz (#2708) 2019-07-07 08:55:30 +01:00
shrinker.h Shrinker for spirv-fuzz (#2708) 2019-07-07 08:55:30 +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 Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 2019-09-10 14:48:27 +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 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.h Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 2019-09-10 14:48:27 +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_copy_object.cpp Add fuzzer pass to copy objects (#2853) 2019-09-11 23:45:20 +01:00
transformation_copy_object.h Add fuzzer pass to copy objects (#2853) 2019-09-11 23:45:20 +01:00
transformation_move_block_down.cpp Disallow movement of unreachable blocks. (#2700) 2019-06-26 15:32:25 +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 Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +01:00
transformation_replace_boolean_constant_with_constant_binary.h Refactor fuzzer transformations (#2694) 2019-06-25 20:49:46 +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 Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +01:00
transformation_replace_id_with_synonym.h Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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 Add fuzzer pass to replace ids with synonyms (#2857) 2019-09-18 20:47:08 +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