SPIRV-Tools/source/opt
Alan Baker 755e5c9420 Transform to combine consecutive access chains
* Combines OpAccessChain, OpInBoundsAccessChain, OpPtrAccessChain and
OpInBoundsPtrAccessChain
* New folding rule to fold add with 0 for integers
 * Converts to a bitcast if the result type does not match the operand
 type
V
2018-07-31 13:42:47 -04:00
..
aggressive_dead_code_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
aggressive_dead_code_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
basic_block.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
basic_block.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
block_merge_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
block_merge_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
build_module.cpp Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
build_module.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ccp_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ccp_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
cfg_cleanup_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
cfg_cleanup_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
cfg.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
cfg.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
CMakeLists.txt Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
combine_access_chains.cpp Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
combine_access_chains.h Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
common_uniform_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
common_uniform_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
compact_ids_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
compact_ids_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
composite.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
composite.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
const_folding_rules.cpp Handle undef literal value in vector shuffle 2018-07-20 11:32:43 -04:00
const_folding_rules.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
constants.cpp Fix finding constant with particular type. (#1724) 2018-07-16 12:36:53 -04:00
constants.h Fix finding constant with particular type. (#1724) 2018-07-16 12:36:53 -04:00
copy_prop_arrays.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
copy_prop_arrays.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dead_branch_elim_pass.cpp Fix block ordering in dead branch elim 2018-07-19 11:17:57 -04:00
dead_branch_elim_pass.h Fix block ordering in dead branch elim 2018-07-19 11:17:57 -04:00
dead_insert_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dead_insert_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dead_variable_elimination.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dead_variable_elimination.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
decoration_manager.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
decoration_manager.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
def_use_manager.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
def_use_manager.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dominator_analysis.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dominator_analysis.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dominator_tree.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
dominator_tree.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
eliminate_dead_constant_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
eliminate_dead_constant_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
eliminate_dead_functions_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
eliminate_dead_functions_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
feature_manager.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
feature_manager.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
flatten_decoration_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
flatten_decoration_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
fold_spec_constant_op_and_composite_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
fold_spec_constant_op_and_composite_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
fold.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
fold.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
folding_rules.cpp Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
folding_rules.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
freeze_spec_constant_value_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
freeze_spec_constant_value_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
function.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
function.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
if_conversion.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
if_conversion.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_exhaustive_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_exhaustive_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_opaque_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_opaque_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
inline_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
instruction_list.cpp Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
instruction_list.h Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
instruction.cpp Replace opt::Instruction type and result cache with flags. (#1718) 2018-07-20 11:09:30 -04:00
instruction.h Replace opt::Instruction type and result cache with flags. (#1718) 2018-07-20 11:09:30 -04:00
ir_builder.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ir_context.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ir_context.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ir_loader.cpp Remove the module from opt::Function. (#1717) 2018-07-12 14:42:05 -04:00
ir_loader.h Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
iterator.h Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
licm_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
licm_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_access_chain_convert_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_access_chain_convert_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_redundancy_elimination.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_redundancy_elimination.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_single_block_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_single_block_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_single_store_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_single_store_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_ssa_elim_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
local_ssa_elim_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
log.h Avoid snprintf warning in GCC 7.1 2017-05-08 15:58:24 -04:00
loop_dependence_helpers.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_dependence.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_dependence.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_descriptor.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_descriptor.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fission.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fission.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fusion_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fusion_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fusion.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_fusion.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_peeling.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_peeling.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_unroller.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_unroller.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
loop_unswitch_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_unswitch_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_utils.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
loop_utils.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
make_unique.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
mem_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
mem_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
merge_return_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
merge_return_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
module.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
module.h Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
null_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
optimizer.cpp Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
pass_manager.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
pass_manager.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
passes.h Transform to combine consecutive access chains 2018-07-31 13:42:47 -04:00
private_to_local_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
private_to_local_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
propagator.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
propagator.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
reduce_load_size.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
reduce_load_size.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
redundancy_elimination.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
redundancy_elimination.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
reflect.h Move the ir namespace to opt. (#1680) 2018-07-09 11:32:29 -04:00
register_pressure.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
register_pressure.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
remove_duplicates_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
remove_duplicates_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
replace_invalid_opc.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
replace_invalid_opc.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_analysis_nodes.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_analysis_simplification.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_analysis.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_analysis.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_replacement_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
scalar_replacement_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
set_spec_constant_default_value_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
set_spec_constant_default_value_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
simplification_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
simplification_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ssa_rewrite_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
ssa_rewrite_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
strength_reduction_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
strength_reduction_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
strip_debug_info_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
strip_debug_info_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
strip_reflect_info_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
strip_reflect_info_pass.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
tree_iterator.h Add loop descriptors and some required dominator tree extensions. 2018-01-08 09:31:13 -05:00
type_manager.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
type_manager.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
types.cpp Handle types with self references. 2018-05-30 15:48:38 -04:00
types.h Handle types with self references. 2018-05-30 15:48:38 -04:00
unify_const_pass.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
unify_const_pass.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00
value_number_table.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
value_number_table.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
vector_dce.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
vector_dce.h Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
workaround1209.cpp Cleanup extraneous namespace qualifies in source/opt. (#1716) 2018-07-12 15:14:43 -04:00
workaround1209.h use Pass::Run to set the context on each pass. (#1708) 2018-07-12 09:08:45 -04:00