SPIRV-Tools/source/opt
Steven Perron 79a00649b4 Allow pointers to pointers in logical addressing mode.
A few optimizations are updates to handle code that is suppose to be
using the logical addressing mode, but still has variables that contain
pointers as long as the pointer are to opaque objects.  This is called
"relaxed logical addressing".

|Instruction::GetBaseAddress| will check that pointers that are use meet
the relaxed logical addressing rules.  Optimization that now handle
relaxed logical addressing instead of logical addressing are:

 - aggressive dead-code elimination
 - local access chain convert
 - local store elimination passes.
2017-12-19 14:29:14 -05:00
..
aggressive_dead_code_elim_pass.cpp Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
aggressive_dead_code_elim_pass.h Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
basic_block.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
basic_block.h Dominator Tree Analysis (#3) 2017-12-05 22:59:43 -05:00
block_merge_pass.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -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 Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
build_module.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
cfg_cleanup_pass.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
cfg_cleanup_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
cfg.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
cfg.h Convert the CFG to an on-demand analysis - NFC. 2017-11-28 13:25:41 -05:00
CMakeLists.txt Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
common_uniform_elim_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
common_uniform_elim_pass.h Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
compact_ids_pass.cpp Add a new constant manager class. 2017-12-08 14:14:55 -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.cpp Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
constants.h Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
dead_branch_elim_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -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 Re-format source tree - NFC. 2017-11-27 14:31:49 -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 Erase decorations removed from internal collections 2017-11-30 11:35:02 -05:00
decoration_manager.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
def_use_manager.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
def_use_manager.h Add scalar replacement 2017-12-11 10:51:13 -05:00
dominator_analysis.h Dominator Tree Analysis (#3) 2017-12-05 22:59:43 -05:00
dominator_tree.cpp Add depth first iterator for trees 2017-12-07 10:07:56 -05:00
dominator_tree.h Add depth first iterator for trees 2017-12-07 10:07:56 -05:00
eliminate_dead_constant_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -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 Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
eliminate_dead_functions_pass.h Have all MemPasses preserve the def-use manager. 2017-11-10 11:17:12 -05:00
feature_manager.cpp Add scalar replacement 2017-12-11 10:51:13 -05:00
feature_manager.h Add scalar replacement 2017-12-11 10:51:13 -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 Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
fold_spec_constant_op_and_composite_pass.h Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -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 Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
function.h Opt: Remove commented out duplicated type_id function 2017-12-18 17:29:21 -05:00
inline_exhaustive_pass.cpp Set the parent for basic blocks during inlining. 2017-12-12 13:39: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 Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
inline_pass.h Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
insert_extract_elim.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
insert_extract_elim.h Re-format source tree - NFC. 2017-11-27 14:31:49 -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 Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
instruction.cpp Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
instruction.h Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
ir_context.cpp Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
ir_context.h Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
ir_loader.cpp Fixed typo that leaked to the binary 2017-12-03 20:42:14 -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 Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
local_access_chain_convert_pass.h Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
local_redundancy_elimination.cpp Add global redundancy elimination 2017-12-07 18:35:38 -05:00
local_redundancy_elimination.h Add global redundancy elimination 2017-12-07 18:35:38 -05:00
local_single_block_elim_pass.cpp Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
local_single_block_elim_pass.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
local_single_store_elim_pass.cpp Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
local_single_store_elim_pass.h Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
local_ssa_elim_pass.cpp Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -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 Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
mem_pass.h Allow pointers to pointers in logical addressing mode. 2017-12-19 14:29:14 -05:00
merge_return_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
merge_return_pass.h Initial implementation of merge return pass. 2017-11-15 10:27:04 -05:00
module.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
module.h Add a new constant manager class. 2017-12-08 14:14:55 -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 Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
pass_manager.cpp Add a new constant manager class. 2017-12-08 14:14:55 -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 Add a new constant manager class. 2017-12-08 14:14:55 -05:00
pass.h Add a new constant manager class. 2017-12-08 14:14:55 -05:00
passes.h Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
private_to_local_pass.cpp Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
private_to_local_pass.h Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
propagator.cpp Remove cfg_ field from SSAPropagator class - NFC. 2017-12-04 15:28:21 -05:00
propagator.h Remove cfg_ field from SSAPropagator class - NFC. 2017-12-04 15:28:21 -05:00
redundancy_elimination.cpp Add global redundancy elimination 2017-12-07 18:35:38 -05:00
redundancy_elimination.h Add global redundancy elimination 2017-12-07 18:35:38 -05:00
reflect.h Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
remove_duplicates_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -05:00
remove_duplicates_pass.h Add the decoration manager to the IRContext. 2017-11-15 12:48:03 -05:00
scalar_replacement_pass.cpp Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
scalar_replacement_pass.h Add scalar replacement 2017-12-11 10:51:13 -05:00
set_spec_constant_default_value_pass.cpp Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -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 Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
strength_reduction_pass.h Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -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
tree_iterator.h Add depth first iterator for trees 2017-12-07 10:07:56 -05:00
type_manager.cpp Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
type_manager.h Convert private variables to function scope. 2017-12-19 14:21:04 -05:00
types.cpp Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
types.h Improving the usability of the type manager. The type manager hashes 2017-12-18 08:20:56 -05:00
unify_const_pass.cpp Change IRContext::KillInst to delete instructions. 2017-12-04 11:07:45 -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 Add global redundancy elimination 2017-12-07 18:35:38 -05:00
value_number_table.h Add global redundancy elimination 2017-12-07 18:35:38 -05:00