SPIRV-Tools/test/fuzz
Stefano Milizia f62357e7b8
spirv-fuzz: Transformation to flatten conditional branch (#3667)
This transformation, given the header of a selection construct with
branching instruction OpBranchConditional, flattens it.
Side-effecting operations such as OpLoad, OpStore and OpFunctionCall
are enclosed within smaller conditionals.
It is applicable if the construct does not contain inner selection
constructs or loops, or atomic or barrier instructions.

The corresponding fuzzer pass looks for selection headers and
tries to flatten them.

Needed for the issue #3544, but it does not fix it completely.
2020-09-15 10:31:01 +01:00
..
call_graph_test.cpp spirv-fuzz: Compute interprocedural loop nesting depth of blocks (#3753) 2020-09-01 12:23:58 +01:00
CMakeLists.txt spirv-fuzz: Transformation to flatten conditional branch (#3667) 2020-09-15 10:31:01 +01:00
comparator_deep_blocks_first_test.cpp spirv-fuzz: Transformation to flatten conditional branch (#3667) 2020-09-15 10:31:01 +01:00
data_synonym_transformation_test.cpp spirv-fuzz: Make handling of synonym facts more efficient (#3301) 2020-04-20 19:02:49 +01:00
equivalence_relation_test.cpp spirv-fuzz: Improve the handling of equation facts (#3281) 2020-04-07 17:38:27 +01:00
fact_manager_test.cpp spirv-fuzz: Transformation to replace the use of an irrelevant id (#3697) 2020-09-01 16:28:04 +01: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_opphi_synonyms_test.cpp spirv-fuzz: Fix GetIdEquivalenceClasses (#3767) 2020-09-02 01:07:59 +01:00
fuzzer_pass_construct_composites_test.cpp spirv-fuzz: Handle isomorphic types property in composite construction (#3262) 2020-04-02 18:33:19 +01:00
fuzzer_pass_donate_modules_test.cpp spirv-fuzz: Handle OpPhis in livesafe functions (#3642) 2020-08-05 19:21:37 +01:00
fuzzer_pass_outline_functions_test.cpp spirv-fuzz: make outliner pass use additional transformations (#3604) 2020-08-06 12:29:26 +01:00
fuzzer_replayer_test.cpp spirv-fuzz: Overflow ids (#3734) 2020-08-26 07:49:42 +01:00
fuzzer_shrinker_test.cpp spirv-fuzz: Set message consumer in replayer when shrinking (#3591) 2020-07-27 08:11:12 +01:00
instruction_descriptor_test.cpp spirv-fuzz: fuzzer pass to adjust memory access operands (#2968) 2019-10-22 18:05:35 +01:00
replayer_test.cpp spirv-fuzz: Overflow ids (#3734) 2020-08-26 07:49:42 +01:00
transformation_access_chain_test.cpp spirv-fuzz: Generalise transformation access chain (#3546) 2020-07-27 11:28:12 +01:00
transformation_add_constant_boolean_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_add_constant_composite_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_add_constant_null_test.cpp spirv-fuzz: Transformation to add OpConstantNull (#3273) 2020-04-02 19:25:30 +01:00
transformation_add_constant_scalar_test.cpp spirv-fuzz: Add words instead of logical operands (#3728) 2020-08-21 11:14:13 +01:00
transformation_add_copy_memory_test.cpp spirv-fuzz: Add FuzzerPassAddCopyMemoryInstructions (#3391) 2020-06-30 21:13:05 +01:00
transformation_add_dead_block_test.cpp spirv-fuzz: Check header dominance when adding dead block (#3694) 2020-08-17 17:47:13 +01:00
transformation_add_dead_break_test.cpp Favour 'integrity' over 'coherence' as a replacement for 'sanity'. (#3619) 2020-09-10 09:52:21 -04:00
transformation_add_dead_continue_test.cpp Favour 'integrity' over 'coherence' as a replacement for 'sanity'. (#3619) 2020-09-10 09:52:21 -04:00
transformation_add_function_test.cpp spirv-fuzz: Add condition to make functions livesafe (#3587) 2020-07-28 01:01:59 +01:00
transformation_add_global_undef_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_global_variable_test.cpp spirv-fuzz: Improve support for compute shaders in donation (#3277) 2020-04-06 16:08:14 +01:00
transformation_add_image_sample_unused_components_test.cpp spirv-fuzz: Add image sample unused components transformation (#3439) 2020-07-08 17:07:04 +01:00
transformation_add_local_variable_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_loop_preheader_test.cpp spirv-fuzz: Transformation to add loop preheader (#3599) 2020-07-30 20:18:19 +01:00
transformation_add_no_contraction_decoration_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_opphi_synonym_test.cpp spirv-fuzz: Create synonym via OpPhi and existing synonyms (#3701) 2020-08-27 15:59:54 +01:00
transformation_add_parameter_test.cpp spirv-fuzz: Support pointer types in FuzzerPassAddParameters (#3627) 2020-08-19 11:18:47 +01:00
transformation_add_relaxed_decoration_test.cpp spirv-fuzz: Improve code coverage of tests (#3686) 2020-08-14 12:47:21 +01:00
transformation_add_synonym_test.cpp spirv-fuzz: Do not make synonyms of void result ids (#3747) 2020-08-27 09:39:20 +01:00
transformation_add_type_array_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_type_boolean_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_type_float_test.cpp spirv-fuzz: Check integer and float width capabilities (#3670) 2020-08-12 22:05:36 +01:00
transformation_add_type_function_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_type_int_test.cpp spirv-fuzz: Check integer and float width capabilities (#3670) 2020-08-12 22:05:36 +01:00
transformation_add_type_matrix_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_type_pointer_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_add_type_struct_test.cpp spirv-fuzz: Add support for BuiltIn decoration (#3736) 2020-09-02 14:14:58 +01:00
transformation_add_type_vector_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_adjust_branch_weights_test.cpp Add adjust branch weights transformation (#3336) 2020-05-14 11:38:34 +01:00
transformation_composite_construct_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_composite_extract_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_composite_insert_test.cpp spirv-fuzz: add FuzzerPassAddCompositeInserts (#3606) 2020-08-19 13:56:03 +01:00
transformation_compute_data_synonym_fact_closure_test.cpp spirv-fuzz: Make handling of synonym facts more efficient (#3301) 2020-04-20 19:02:49 +01:00
transformation_duplicate_region_with_selection_test.cpp spirv-fuzz: Add TransformationDuplicateRegionWithSelection (#3773) 2020-09-11 11:48:19 +01:00
transformation_equation_instruction_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_flatten_conditional_branch_test.cpp spirv-fuzz: Transformation to flatten conditional branch (#3667) 2020-09-15 10:31:01 +01:00
transformation_function_call_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_inline_function_test.cpp spirv-fuzz: Add inline function transformation (#3517) 2020-08-25 17:28:23 +01:00
transformation_invert_comparison_operator_test.cpp spirv-fuzz: TransformationInvertComparisonOperator (#3475) 2020-07-03 17:37:32 +01:00
transformation_load_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_make_vector_operation_dynamic_test.cpp spirv-fuzz: Add TransformationMakeVectorOperationDynamic (#3597) 2020-08-06 15:50:18 +01:00
transformation_merge_blocks_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_move_block_down_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_move_instruction_down_test.cpp spirv-fuzz: TransformationMoveInstructionDown (#3477) 2020-08-03 16:45:24 +01:00
transformation_mutate_pointer_test.cpp spirv-fuzz: TransformationMutatePointer (#3737) 2020-09-01 12:45:13 +01:00
transformation_outline_function_test.cpp spirv-fuzz: Overflow ids (#3734) 2020-08-26 07:49:42 +01:00
transformation_permute_function_parameters_test.cpp spirv-fuzz: Create a helper in fuzzerutil to reuse function type (#3572) 2020-07-23 18:01:12 +01:00
transformation_permute_phi_operands_test.cpp spirv-fuzz: Permute OpPhi instruction operands (#3421) 2020-06-23 15:00:28 +01:00
transformation_propagate_instruction_up_test.cpp spirv-fuzz: Support identical predecessors in TransformationPropagateInstructionUp (#3689) 2020-08-14 12:29:36 +01:00
transformation_push_id_through_variable_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
transformation_record_synonymous_constants_test.cpp spirv-fuzz: Relax type checking for int contants (#3573) 2020-07-27 13:34:44 +01:00
transformation_replace_add_sub_mul_with_carrying_extended_test.cpp spirv-fuzz: TransformationReplaceAddSubMulWithCarryingExtended (#3598) 2020-08-06 17:30:34 +01:00
transformation_replace_boolean_constant_with_constant_binary_test.cpp Support OpPhi when replacing boolean constant operand (#3518) 2020-07-14 10:27:15 +01:00
transformation_replace_constant_with_uniform_test.cpp spirv-fuzz: Handle OpPhi during constant obfuscation (#3640) 2020-08-05 19:17:27 +01:00
transformation_replace_copy_memory_with_load_store_test.cpp spirv-fuzz: adds TransformationReplaceCopyMemoryWithLoadStore (#3575) 2020-07-23 15:14:20 +01:00
transformation_replace_copy_object_with_store_load_test.cpp spirv-fuzz: Improve code coverage of tests (#3686) 2020-08-14 12:47:21 +01:00
transformation_replace_id_with_synonym_test.cpp spirv-fuzz: consider additional access chain instructions (#3672) 2020-08-12 21:58:53 +01:00
transformation_replace_irrelevant_id_test.cpp spirv-fuzz: Transformation to replace the use of an irrelevant id (#3697) 2020-09-01 16:28:04 +01:00
transformation_replace_linear_algebra_instruction_test.cpp spirv-fuzz: Implement the OpOuterProduct linear algebra case (#3617) 2020-07-29 23:46:56 +01:00
transformation_replace_load_store_with_copy_memory_test.cpp spirv-fuzz: Improve code coverage of tests (#3686) 2020-08-14 12:47:21 +01:00
transformation_replace_opphi_id_from_dead_predecessor_test.cpp spirv-fuzz: Replace id in OpPhi coming from a dead predecessor (#3744) 2020-09-02 01:06:38 +01:00
transformation_replace_opselect_with_conditional_branch_test.cpp spirv-fuzz: Transformation to convert OpSelect to conditional branch (#3681) 2020-09-03 10:19:02 +01:00
transformation_replace_parameter_with_global_test.cpp spirv-fuzz: Create a helper in fuzzerutil to reuse function type (#3572) 2020-07-23 18:01:12 +01:00
transformation_replace_params_with_struct_test.cpp spirv-fuzz: Remove OpFunctionCall operands in correct order (#3630) 2020-08-04 19:10:21 +01:00
transformation_set_function_control_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_set_loop_control_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_set_memory_operands_mask_test.cpp Fix operand access (#3427) 2020-06-13 00:03:25 +01:00
transformation_set_selection_control_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_split_block_test.cpp spirv-fuzz: Respect rules for OpSampledImage (#3287) 2020-04-14 20:17:42 +01:00
transformation_store_test.cpp spirv-fuzz: Do not allow adding stores to read-only pointers (#3316) 2020-05-01 02:50:44 +01:00
transformation_swap_commutable_operands_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_swap_conditional_branch_operands_test.cpp spirv-fuzz: Swap operands in OpBranchConditional (#3423) 2020-06-19 16:38:52 +01:00
transformation_toggle_access_chain_instruction_test.cpp spirv-fuzz: Introduce TransformationContext (#3272) 2020-04-02 15:54:46 +01:00
transformation_vector_shuffle_test.cpp spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578) 2020-07-23 17:19:13 +01:00
uniform_buffer_element_descriptor_test.cpp Represent uniform facts via descriptor set and binding. (#2681) 2019-06-19 20:45:14 +01:00