SPIRV-Tools/test/opt/loop_optimizations
Steven Perron b3daa93b46 Change merge return pass to handle structured cfg.
We are seeing shaders that have multiple returns in a functions.  These
functions must get inlined for legalization purposes; however, the
inliner does not know how to inline functions that have multiple
returns.

The solution we will go with it to improve the merge return pass to
handle structured control flow.

Note that the merge return pass will assume the cfg has been cleanedup
by dead branch elimination.

Fixes #857.
2018-03-19 13:49:04 -04:00
..
CMakeLists.txt Add loop unswitch pass. 2018-02-27 08:52:46 -05:00
hoist_all_loop_types.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
hoist_double_nested_loops.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
hoist_from_independent_loops.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
hoist_simple_case.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
hoist_single_nested_loops.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
hoist_without_preheader.cpp Change merge return pass to handle structured cfg. 2018-03-19 13:49:04 -04:00
lcssa.cpp Add LoopUtils class to gather some loop transformation support. 2018-02-01 15:35:09 -05:00
loop_descriptions.cpp Add loop unswitch pass. 2018-02-27 08:52:46 -05:00
nested_loops.cpp Loop invariant code motion initial implementation 2018-02-08 22:55:47 -05:00
unroll_assumptions.cpp Unroller support for multiple induction variables 2018-02-27 11:50:08 +00:00
unroll_simple.cpp Unroller support for multiple induction variables 2018-02-27 11:50:08 +00:00
unswitch.cpp Add loop unswitch pass. 2018-02-27 08:52:46 -05:00