SPIRV-Tools/test/opt
Steven Perron 0bc66a8ba9
Fix invalid OpPhi generated by merge-return. (#2172)
* Fix invalid OpPhi generated by merge-return.

When we create a new phi node for a value say %10, we have to replace
all of the uses of %10 that are no longer dominated by the def of %10
by the result id of the new phi.  However, if the use is in a phi node,
it is possible that the bb contains the use is not dominated by either.
In this case, needs to be handled differently.

* Split loop headers before add a new branch to them.

In merge return, Phi node in loop header that are also merges for loop
do not get updated correctly.  Those cases do not fit in with our
current analysis.  Doing this will simplify the code by reducing the
number of cases that have to be handled.
2018-12-07 14:10:30 -05:00
..
dominator_tree Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
loop_optimizations Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
aggressive_dead_code_elim_test.cpp Validate Uniform decoration (#2181) 2018-12-07 09:32:57 -05:00
assembly_builder_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
assembly_builder.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
block_merge_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
ccp_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
cfg_cleanup_test.cpp Add validation for execution modes 2018-10-02 10:22:23 -04:00
CMakeLists.txt Update memory model (#1904) 2018-11-30 14:15:51 -05:00
combine_access_chains_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
common_uniform_elim_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
compact_ids_test.cpp Validate the input to Optimizer::Run (#1799) 2018-08-08 11:16:19 -04:00
constant_manager_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
copy_prop_array_test.cpp Add a nullptr check to array copy propagation. (#1987) 2018-10-19 12:53:40 -04:00
dead_branch_elim_test.cpp Fix dead branch elim infinite loop. (#2009) 2018-10-24 09:10:30 -04:00
dead_insert_elim_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_variable_elim_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
decoration_manager_test.cpp Handle decoration groups with no decorations. (#1921) 2018-09-28 14:16:04 -04:00
def_use_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_const_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_functions_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
feature_manager_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
flatten_decoration_test.cpp Add validation for execution modes 2018-10-02 10:22:23 -04:00
fold_spec_const_op_composite_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fold_test.cpp Remove undefined behaviour when folding shifts. (#2157) 2018-12-04 10:04:02 -05:00
freeze_spec_const_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function_test.cpp Don't inline recursive functions. (#2130) 2018-11-29 14:24:58 -05:00
function_utils.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
if_conversion_test.cpp Fix restrictions in if conversion (#1998) 2018-10-19 15:16:46 -04:00
inline_opaque_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inline_test.cpp Don't inline recursive functions. (#2130) 2018-11-29 14:24:58 -05:00
insert_extract_elim_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
inst_bindless_check_test.cpp Add base and core bindless validation instrumentation classes (#2014) 2018-11-08 13:54:54 -05:00
instruction_list_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction_test.cpp Instruction::GetBaseAddress to handle OpPtrAccessChain (#2050) 2018-11-14 12:42:25 -05:00
ir_builder.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
ir_context_test.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
ir_loader_test.cpp Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
iterator_test.cpp Move make_unique to source/util. (#1836) 2018-08-14 12:44:54 -04:00
line_debug_info_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_access_chain_convert_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
local_redundancy_elimination_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
local_single_block_elim.cpp Validate pointer variables (#2111) 2018-11-27 16:47:10 -05:00
local_single_store_elim_test.cpp Validate pointer variables (#2111) 2018-11-27 16:47:10 -05:00
local_ssa_elim_test.cpp Validate pointer variables (#2111) 2018-11-27 16:47:10 -05:00
module_test.cpp Add option for the max id bound. (#1870) 2018-09-10 11:49:41 -04:00
module_utils.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
optimizer_test.cpp Validate the input to Optimizer::Run (#1799) 2018-08-08 11:16:19 -04:00
pass_fixture.h Update memory model (#1904) 2018-11-30 14:15:51 -05:00
pass_manager_test.cpp Move make_unique to source/util. (#1836) 2018-08-14 12:44:54 -04:00
pass_merge_return_test.cpp Fix invalid OpPhi generated by merge-return. (#2172) 2018-12-07 14:10:30 -05:00
pass_remove_duplicates_test.cpp Fixup readabilty/inheritance warnings (#1805) 2018-08-07 09:10:03 -04:00
pass_utils.cpp Check for unreachable blocks in merge-return. (#1966) 2018-10-10 15:18:15 -04:00
pass_utils.h Fix gtest.h include in test/opt/pass_utils.h 2018-10-12 10:22:25 -04:00
pch_test_opt.cpp Rename PCH macro to spvtools_pch to avoid conflicts with other projects. Also add pch to test/opt. (#2034) 2018-11-07 09:15:04 -05:00
pch_test_opt.h Rename PCH macro to spvtools_pch to avoid conflicts with other projects. Also add pch to test/opt. (#2034) 2018-11-07 09:15:04 -05:00
private_to_local_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
process_lines_test.cpp Add passes to propagate and eliminate redundant line instructions (#2027). (#2039) 2018-11-15 14:06:17 -05:00
propagator_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reduce_load_size_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
redundancy_elimination_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
register_liveness.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
replace_invalid_opc_test.cpp Check for unreachable blocks in merge-return. (#1966) 2018-10-10 15:18:15 -04:00
scalar_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_replacement_test.cpp Don't scalarize spec constant sized arrays 2018-10-04 11:58:23 -04:00
set_spec_const_default_value_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
simplification_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
strength_reduction_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
strip_debug_info_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_reflect_info_test.cpp Remove MemberDecorateStringGOOGLE during stript-refect. (#2021) 2018-10-30 16:17:35 -04:00
struct_cfg_analysis_test.cpp Fix infinite loop in dead-branch-elimination (#1891) 2018-09-17 13:00:24 -04:00
type_manager_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
types_test.cpp Use MakeUnique. (#1837) 2018-08-14 15:01:50 -04:00
unify_const_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
upgrade_memory_model_test.cpp Update memory model (#1904) 2018-11-30 14:15:51 -05:00
utils_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
value_table_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
vector_dce_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
workaround1209_test.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00