SPIRV-Tools/source/fuzz
Alastair Donaldson 290f6a820d
spirv-fuzz: do not replace boolean constant argument to OpPhi instruction (#2903)
Before this change, spirv-fuzz would replace a constant boolean
argument to an OpPhi with the result of a binary operation, inserting
the instruction to compute the binary operation right before the
OpPhi, leading to an invalid module. This change conservatively
disallows replacing OpPhi arguments. Issue #2902 notes that there is
scope for being less conservative.

Fixes #2897.
2019-09-25 12:16:25 +01:00
..
protobufs Fix comment typo found by protobufs linter (#2884) 2019-09-19 09:47:46 -04:00
CMakeLists.txt Fix CMake issue related to spirv-fuzz (#2877) 2019-09-18 20:47:58 +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 Employ the "swarm testing" idea in spirv-fuzz (#2890) 2019-09-23 16:29:19 +01:00
fuzzer_context.h Employ the "swarm testing" idea in spirv-fuzz (#2890) 2019-09-23 16:29:19 +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 Fix operand index in spirv-fuzz (#2895) 2019-09-23 16:28:25 +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 detection of blocks bypassed by new edge (#2874) 2019-09-18 20:50:08 +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 Employ the "swarm testing" idea in spirv-fuzz (#2890) 2019-09-23 16:29:19 +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 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 Employ the "swarm testing" idea in spirv-fuzz (#2890) 2019-09-23 16:29:19 +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 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