SPIRV-Tools/source/opt
Steven Perron 28c415500d Create a local value numbering pass
Creates a pass that removes redundant instructions within the same basic
block.  This will be implemented using a hash based value numbering
algorithm.

Added a number of functions that check for the Vulkan descriptor types.
These are used to determine if we are variables are read-only or not.

Implemented a function to check if loads and variables are read-only.
Implemented kernel specific and shader specific versions.

A big change is that the Combinator analysis in ADCE is factored out
into the IRContext as an analysis. This was done because it is being
reused in the value number table.
2017-11-23 11:45:09 -05:00
..
aggressive_dead_code_elim_pass.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
aggressive_dead_code_elim_pass.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00
basic_block.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
basic_block.h Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
block_merge_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
block_merge_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
build_module.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
build_module.h Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
cfg_cleanup_pass.cpp Add analysis to compute mappings between instructions and basic blocks. 2017-11-13 13:21:48 -05:00
cfg_cleanup_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
cfg.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
cfg.h Move class CFG from namespace opt to namespace ir. 2017-11-02 11:51:07 -04:00
CMakeLists.txt Create a local value numbering pass 2017-11-23 11:45:09 -05:00
common_uniform_elim_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
common_uniform_elim_pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
compact_ids_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
compact_ids_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
constants.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
dead_branch_elim_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
dead_branch_elim_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
dead_variable_elimination.cpp Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
dead_variable_elimination.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
decoration_manager.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
decoration_manager.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
def_use_manager.cpp Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
def_use_manager.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
eliminate_dead_constant_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
eliminate_dead_constant_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
eliminate_dead_functions_pass.cpp Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
eliminate_dead_functions_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
flatten_decoration_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
flatten_decoration_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
fold_spec_constant_op_and_composite_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
fold_spec_constant_op_and_composite_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
fold.cpp Re-factor generic constant folding code out of FoldSpecConstantOpAndCompositePass 2017-10-17 19:41:37 -04:00
fold.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
freeze_spec_constant_value_pass.cpp Add the IRContext (part 1) 2017-10-31 13:46:05 -04:00
freeze_spec_constant_value_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
function.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
function.h Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
inline_exhaustive_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
inline_exhaustive_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
inline_opaque_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
inline_opaque_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
inline_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
inline_pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
insert_extract_elim.cpp Optimize loads/stores on nested structs 2017-11-21 17:56:03 -05:00
insert_extract_elim.h Optimize loads/stores on nested structs 2017-11-21 17:56:03 -05:00
instruction_list.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
instruction_list.h Change the sections in the module to use the InstructionList class. 2017-10-25 15:52:06 -04:00
instruction.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
instruction.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00
ir_context.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
ir_context.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00
ir_loader.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
ir_loader.h Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
iterator.h Fix move semantics in iterator make_range 2017-11-21 17:36:15 -05:00
local_access_chain_convert_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
local_access_chain_convert_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
local_redundancy_elimination.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
local_redundancy_elimination.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00
local_single_block_elim_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
local_single_block_elim_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
local_single_store_elim_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
local_single_store_elim_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
local_ssa_elim_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
local_ssa_elim_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
log.h Avoid snprintf warning in GCC 7.1 2017-05-08 15:58:24 -04:00
make_unique.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
mem_pass.cpp Optimize loads/stores on nested structs 2017-11-21 17:56:03 -05:00
mem_pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
merge_return_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
merge_return_pass.h Initial implementation of merge return pass. 2017-11-15 10:27:04 -05:00
module.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
module.h Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
null_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
optimizer.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
pass_manager.cpp Add the IRContext (part 2): Add def-use manager 2017-11-08 13:35:34 -05:00
pass_manager.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
pass.cpp Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
passes.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00
reflect.h Optimizer: Line and NoLine are not debug1 or debug2 2017-10-24 10:54:23 -04:00
remove_duplicates_pass.cpp Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
remove_duplicates_pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
set_spec_constant_default_value_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
set_spec_constant_default_value_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
strength_reduction_pass.cpp Adding an unique id to Instruction generated by IRContext 2017-11-20 17:49:10 -05:00
strength_reduction_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
strip_debug_info_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
strip_debug_info_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
type_manager.cpp Fix typo in method name Struct::AddMemberName 2017-04-01 11:19:40 -04:00
type_manager.h Add begin() and end() for TypeManager. 2016-09-30 16:56:42 -04:00
types.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
types.h Add SPIR-V 1.2 support, for OpenCL 2.2 2017-05-15 17:10:07 -04:00
unify_const_pass.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
unify_const_pass.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
value_number_table.cpp Create a local value numbering pass 2017-11-23 11:45:09 -05:00
value_number_table.h Create a local value numbering pass 2017-11-23 11:45:09 -05:00