SPIRV-Tools/test/opt
GregF 9de4e69856 Add AggressiveDCEPass
Create aggressive dead code elimination pass
This pass eliminates unused code from functions. In addition,
it detects and eliminates code which may have spurious uses but which do
not contribute to the output of the function. The most common cause of
such code sequences is summations in loops whose result is no longer used
due to dead code elimination. This optimization has additional compile
time cost over standard dead code elimination.

This pass only processes entry point functions. It also only processes
shaders with logical addressing. It currently will not process functions
with function calls. It currently only supports the GLSL.std.450 extended
instruction set. It currently does not support any extensions.

This pass will be made more effective by first running passes that remove
dead control flow and inlines function calls.

This pass can be especially useful after running Local Access Chain
Conversion, which tends to cause cycles of dead code to be left after
Store/Load elimination passes are completed. These cycles cannot be
eliminated with standard dead code elimination.

Additionally: This transform uses a whitelist of instructions that it
knows do have side effects, (a.k.a. combinators).  It assumes other
instructions have side effects: it will not remove them, and assumes
they have side effects via their ID operands.
2017-07-10 11:30:25 -04:00
..
aggressive_dead_code_elim_test.cpp Add AggressiveDCEPass 2017-07-10 11:30:25 -04:00
assembly_builder_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
assembly_builder.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
block_merge_test.cpp BlockMerge: Add BlockMergePass 2017-06-27 11:31:33 -04:00
CMakeLists.txt Add AggressiveDCEPass 2017-07-10 11:30:25 -04:00
compact_ids_test.cpp Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
dead_branch_elim_test.cpp DeadBranchElim: Add DeadBranchElimPass 2017-07-07 15:16:25 -04:00
def_use_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
eliminate_dead_const_test.cpp Provide friendly names for true and false 2017-01-11 16:33:45 -05:00
flatten_decoration_test.cpp Add FlattenDecoration transform 2017-04-06 11:19:56 -04:00
fold_spec_const_op_composite_test.cpp Provide friendly names for true and false 2017-01-11 16:33:45 -05:00
freeze_spec_const_test.cpp Provide friendly names for true and false 2017-01-11 16:33:45 -05:00
inline_test.cpp Inline: Inline early return function if no returns in loop. 2017-05-12 17:18:00 -04:00
insert_extract_elim_test.cpp mem2reg: Add InsertExtractElimPass 2017-06-21 08:13:15 -04:00
instruction_test.cpp Include memory and semantics IDs when iterating over inbound IDs 2017-07-05 10:36:57 -04:00
ir_loader_test.cpp Make friendly number-based names for OpConstant 2016-11-15 14:05:03 -05:00
iterator_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
line_debug_info_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
local_access_chain_convert_test.cpp Mem2Reg: Add Local Access Chain Convert pass 2017-06-04 12:49:27 -04:00
local_single_block_elim.cpp mem2reg: Add pass to eliminate local loads and stores in single block. 2017-06-12 17:03:47 -04:00
local_single_store_elim_test.cpp mem2reg: Add LocalSingleStoreElimPass 2017-06-19 10:43:02 -04:00
local_ssa_elim_test.cpp Add LocalMultiStoreElim pass 2017-07-07 17:54:21 -04:00
module_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
module_utils.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
optimizer_test.cpp Fix optimizer on when to write the binary 2017-04-03 15:48:50 -04:00
pass_fixture.h Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
pass_manager_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
pass_utils.cpp Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
pass_utils.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
set_spec_const_default_value_test.cpp Update set_spec_const_default_value_test.cpp 2017-05-08 10:41:48 -04:00
strip_debug_info_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
type_manager_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
types_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
unify_const_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00
utils_test.cpp Renaming test files to comply with Google style guide. 2016-11-07 14:41:51 -05:00