SPIRV-Tools/source/opt
Steven Perron ce644d4a24
Update OpPhi instructions after splitting block. (#1783)
In the merge return pass, we will split a block, but not update the phi
instructions that reference the block.  Since the branch in the original
block is now part of the block with the new id, the phi nodes must be
updated.

This commit will change this.

I have also considered other places where an id of a basic block could
be referenced, and I don't think any of them need to change.

1) Branch and merge instructions: These jump to the start of the
original block, and so we want them to jump to the block that uses the
original id.  Nothing needs to change.

2) Names and decorations: I don't think it matters with block keeps the
name, and there are no decorations that apply to basic blocks.

Fixes #1736.
2018-08-02 11:02:50 -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 Update OpPhi instructions after splitting block. (#1783) 2018-08-02 11:02:50 -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 Remove using std::<foo> statements. (#1756) 2018-08-01 14:58:12 -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 Remove using std::<foo> statements. (#1756) 2018-08-01 14:58:12 -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 Remove using std::<foo> statements. (#1756) 2018-08-01 14:58:12 -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 Update OpPhi instructions after splitting block. (#1783) 2018-08-02 11:02:50 -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