SPIRV-Tools/test/opt/loop_optimizations
Steven Perron 5ec2d1a8cd
Don't fold specialized branches in loop unswitch (#2245)
* Don't fold specialized branchs in loop unswitch

Folding branches can have a lot of special cases, and can be a little
error prone.  So I only want it in one place.  That will be in dead
branch elimination.  I will change loop unswitching to set the branches
that were being folded to have a constant condition.  Then subsequent
pass of dead branch elimination will be able to remove the code.

At the same time, I added a check that loop unswitching will not
unswitch a branch with a constant condition.  It is not useful to do it
because dead branch elimination will simple fold the branch anyway.
Also it avoid an infinite loop that would other wise be introduced by my
first change.

Fixes #2203.
2018-12-19 04:40:30 +00:00
..
CMakeLists.txt Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
dependence_analysis_helpers.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dependence_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fusion_compatibility.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fusion_illegal.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
fusion_legal.cpp Fix bug in construct block calculation (#1964) 2018-10-10 11:14:01 -04:00
fusion_pass.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
hoist_all_loop_types.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hoist_double_nested_loops.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hoist_from_independent_loops.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hoist_simple_case.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hoist_single_nested_loops.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
hoist_without_preheader.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
lcssa.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
loop_descriptions.cpp 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
nested_loops.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
pch_test_opt_loop.cpp Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
pch_test_opt_loop.h Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
peeling_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
peeling.cpp Add base and core bindless validation instrumentation classes (#2014) 2018-11-08 13:54:54 -05:00
unroll_assumptions.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
unroll_simple.cpp Make EFFCEE required (#1943) 2018-10-04 10:00:11 -04:00
unswitch.cpp Don't fold specialized branches in loop unswitch (#2245) 2018-12-19 04:40:30 +00:00