SPIRV-Tools/test/opt
Alan Baker 867451f49e Add scalar replacement
Adds a scalar replacement pass. The pass considers all function scope
variables of composite type. If there are accesses to individual
elements (and it is legal) the pass replaces the variable with a
variable for each composite element and updates all the uses.

Added the pass to -O
Added NumUses and NumUsers to DefUseManager
Added some helper methods for the inst to block mapping in context
Added some helper methods for specific constant types

No longer generate duplicate pointer types.

* Now searches for an existing pointer of the appropriate type instead
of failing validation
* Fixed spec constant extracts
* Addressed changes for review
* Changed RunSinglePassAndMatch to be able to run validation
 * current users do not enable it

Added handling of acceptable decorations.

* Decorations are also transfered where appropriate

Refactored extension checking into FeatureManager

* Context now owns a feature manager
 * consciously NOT an analysis
 * added some test
* fixed some minor issues related to decorates
* added some decorate related tests for scalar replacement
2017-12-11 10:51:13 -05:00
..
dominator_tree Add depth first iterator for trees 2017-12-07 10:07:56 -05:00
aggressive_dead_code_elim_test.cpp AggressiveDCE: Add merge and continue branches for live loop. 2017-11-29 09:56:21 -05:00
assembly_builder_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
assembly_builder.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
block_merge_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
cfg_cleanup_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
CMakeLists.txt Add scalar replacement 2017-12-11 10:51:13 -05:00
common_uniform_elim_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
compact_ids_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
dead_branch_elim_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
dead_variable_elim_test.cpp Add pass to remove dead variables at the module level. 2017-10-23 13:57:05 -04:00
def_use_test.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
eliminate_dead_const_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
eliminate_dead_functions_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
feature_manager_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
flatten_decoration_test.cpp Add FlattenDecoration transform 2017-04-06 11:19:56 -04:00
fold_spec_const_op_composite_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
freeze_spec_const_test.cpp Provide friendly names for true and false 2017-01-11 16:33:45 -05:00
function_utils.h Dominator Tree Analysis (#3) 2017-12-05 22:59:43 -05:00
inline_opaque_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
inline_test.cpp Kill names and decoration in inlining. 2017-12-07 12:20:45 -05:00
insert_extract_elim_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
instruction_list_test.cpp Change the sections in the module to use the InstructionList class. 2017-10-25 15:52:06 -04:00
instruction_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
ir_context_test.cpp Adding new def -> use mapping container 2017-11-23 16:40:02 -05:00
ir_loader_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -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 Add the IRContext (part 1) 2017-10-31 13:46:05 -04:00
local_access_chain_convert_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
local_redundancy_elimination_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
local_single_block_elim.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
local_single_store_elim_test.cpp SingleStore: Support OpVariable Initialization 2017-12-08 16:02:14 -05:00
local_ssa_elim_test.cpp MultiStore: Support OpVariable Initialization 2017-12-11 10:37:14 -05:00
module_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
module_utils.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
optimizer_test.cpp Fix optimizer on when to write the binary 2017-04-03 15:48:50 -04:00
pass_fixture.h Add scalar replacement 2017-12-11 10:51:13 -05:00
pass_manager_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
pass_merge_return_test.cpp Initial implementation of merge return pass. 2017-11-15 10:27:04 -05:00
pass_test.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
pass_utils.cpp Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
pass_utils.h Add strength reduction; for now replace multiply by power of 2 2017-09-18 17:01:36 -04:00
propagator_test.cpp Remove cfg_ field from SSAPropagator class - NFC. 2017-12-04 15:28:21 -05:00
redundancy_elimination_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
scalar_replacement_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
set_spec_const_default_value_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
strength_reduction_test.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
strip_debug_info_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
type_manager_test.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -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 Add scalar replacement 2017-12-11 10:51:13 -05:00
utils_test.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
value_table_test.cpp Compute value number when the value table is constructed. 2017-12-04 11:02:04 -05:00