SPIRV-Tools/source/fuzz
Alastair Donaldson 9c0830133b
Add constant == uniform facts. (#2660)
Adds a new (and first) kind of fact to the fact manager, which is that
a specific uniform value is guaranteed to be equal to a specific
constant.  The point of this is that such information (if known to be
true by some external source) can be used by spirv-fuzz to transform
the module in interesting ways that a static compiler cannot reverse
via compile-time analysis.

This change introduces protobuf messages for the fact, and adds
capabilities to the fact manager to store this kind of fact and
provide information about it.
2019-06-11 15:56:08 +01:00
..
protobufs Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00
CMakeLists.txt Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00
fact_manager.cpp Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00
fact_manager.h Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00
fuzzer_context.cpp Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
fuzzer_context.h Add transformation to replace a boolean constant with a numeric comparison (#2659) 2019-06-06 22:22:35 +01:00
fuzzer_pass_add_dead_breaks.cpp Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
fuzzer_pass_add_dead_breaks.h Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
fuzzer_pass_add_useful_constructs.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
fuzzer_pass_add_useful_constructs.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
fuzzer_pass_permute_blocks.cpp Add spirv-fuzz pass to permute blocks. (#2642) 2019-05-31 09:59:06 +01:00
fuzzer_pass_permute_blocks.h Add spirv-fuzz pass to permute blocks. (#2642) 2019-05-31 09:59:06 +01:00
fuzzer_pass_split_blocks.cpp Fix bug in 'split blocks', and add tests for fuzzer. (#2658) 2019-06-05 21:54:47 +01:00
fuzzer_pass_split_blocks.h Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
fuzzer_pass.cpp Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
fuzzer_pass.h Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
fuzzer_util.cpp Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
fuzzer_util.h Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
fuzzer.cpp Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
fuzzer.h Add library for spirv-fuzz (#2618) 2019-05-27 14:34:55 +01:00
id_use_descriptor.cpp Add transformation to replace a boolean constant with a numeric comparison (#2659) 2019-06-06 22:22:35 +01:00
id_use_descriptor.h Add transformation to replace a boolean constant with a numeric comparison (#2659) 2019-06-06 22:22:35 +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
transformation_add_constant_boolean.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_constant_boolean.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_constant_scalar.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_constant_scalar.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_dead_break.cpp Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
transformation_add_dead_break.h Add fuzzer pass to add dead breaks. (#2654) 2019-06-05 08:02:16 +01:00
transformation_add_type_boolean.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_type_boolean.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_type_float.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_type_float.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_type_int.cpp Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_add_type_int.h Add fuzzer pass that adds useful constructs to a module (#2647) 2019-06-04 14:55:00 +01:00
transformation_move_block_down.cpp Add spirv-fuzz pass to permute blocks. (#2642) 2019-05-31 09:59:06 +01:00
transformation_move_block_down.h Add spirv-fuzz pass to permute blocks. (#2642) 2019-05-31 09:59:06 +01:00
transformation_replace_boolean_constant_with_constant_binary.cpp Add transformation to replace a boolean constant with a numeric comparison (#2659) 2019-06-06 22:22:35 +01:00
transformation_replace_boolean_constant_with_constant_binary.h Add transformation to replace a boolean constant with a numeric comparison (#2659) 2019-06-06 22:22:35 +01:00
transformation_split_block.cpp Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
transformation_split_block.h Add "split block" transformation. (#2633) 2019-05-29 16:42:46 +01:00
uniform_buffer_element_descriptor.cpp Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00
uniform_buffer_element_descriptor.h Add constant == uniform facts. (#2660) 2019-06-11 15:56:08 +01:00