SPIRV-Tools/source/opt
Steven Perron 5c8b4f5a1c
Validate the input to Optimizer::Run (#1799)
* Run the validator in the optimization fuzzers.

The optimizers assumes that the input to the optimizer is valid.  Since
the fuzzers do not check that the input is valid before passing the
spir-v to the optimizer, we are getting a few errors.

The solution is to run the validator in the optimizer to validate the
input.

For the legalization passes, we need to add an extra option to the
validator to accept certain types of variable pointers, even if the
capability is not given.  At the same time, we changed the option
"--legalize-hlsl" to relax the validator in the same way instead of
turning it off.
2018-08-08 11:16:19 -04:00
..
aggressive_dead_code_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
aggressive_dead_code_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
basic_block.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
basic_block.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
block_merge_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
block_merge_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
build_module.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
build_module.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ccp_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ccp_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
cfg_cleanup_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
cfg_cleanup_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
cfg.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
cfg.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
CMakeLists.txt Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
combine_access_chains.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
combine_access_chains.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
common_uniform_elim_pass.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
common_uniform_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
compact_ids_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
compact_ids_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
composite.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
composite.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
const_folding_rules.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
const_folding_rules.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
constants.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
constants.h Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
copy_prop_arrays.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
copy_prop_arrays.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_branch_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_branch_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_insert_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_insert_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_variable_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_variable_elimination.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
decoration_manager.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
decoration_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
def_use_manager.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
def_use_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_tree.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
dominator_tree.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_constant_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_constant_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_functions_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_functions_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
feature_manager.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
feature_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
flatten_decoration_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
flatten_decoration_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fold_spec_constant_op_and_composite_pass.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
fold_spec_constant_op_and_composite_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fold.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fold.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
folding_rules.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
folding_rules.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
freeze_spec_constant_value_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
freeze_spec_constant_value_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
if_conversion.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
if_conversion.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_exhaustive_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_exhaustive_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_opaque_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_opaque_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction_list.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction_list.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ir_builder.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ir_context.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
ir_context.h Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
ir_loader.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ir_loader.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
iterator.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
licm_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
licm_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_access_chain_convert_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_access_chain_convert_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_redundancy_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_redundancy_elimination.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_single_block_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_single_block_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_single_store_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_single_store_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_ssa_elim_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_ssa_elim_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
log.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
loop_dependence_helpers.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_dependence.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_dependence.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_descriptor.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_descriptor.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fission.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fission.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_peeling.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_peeling.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_unroller.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_unroller.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_unswitch_pass.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
loop_unswitch_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_utils.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_utils.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
make_unique.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
mem_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
mem_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
merge_return_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
merge_return_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
module.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
module.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
null_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
optimizer.cpp Validate the input to Optimizer::Run (#1799) 2018-08-08 11:16:19 -04:00
pass_manager.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
pass_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
passes.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
private_to_local_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
private_to_local_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
propagator.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
propagator.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reduce_load_size.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reduce_load_size.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
redundancy_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
redundancy_elimination.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reflect.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
register_pressure.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
register_pressure.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
remove_duplicates_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
remove_duplicates_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
replace_invalid_opc.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
replace_invalid_opc.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis_nodes.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis_simplification.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_replacement_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_replacement_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
set_spec_constant_default_value_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
set_spec_constant_default_value_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
simplification_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
simplification_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ssa_rewrite_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ssa_rewrite_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strength_reduction_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strength_reduction_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_debug_info_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_debug_info_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_reflect_info_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_reflect_info_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
tree_iterator.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
type_manager.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
type_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
types.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
types.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
unify_const_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
unify_const_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
value_number_table.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
value_number_table.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
vector_dce.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
vector_dce.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
workaround1209.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
workaround1209.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00