SPIRV-Tools/source/opt
Steven Perron bb7802b18c Change BasicBlock to use InstructionList to hold instructions.
This is the first step in replacing the std::vector of Instruction
pointers to using and intrusive linked list.

To this end, we created the InstructionList class.  It inherites from
the IntrusiveList class, but add the extra concept of ownership.  An
InstructionList owns the instruction that are in it.  This is to be
consistent with the current ownership rules where the vector owns the
instruction that are in it.

The other larger change is that the inst_ member of the BasicBlock class
was changed to using the InstructionList class.

Added test for the InsertBefore functions, and making sure that the
InstructionList destructor will delete the elements that it contains.

I've also add extra comments to explain ownership a little better.
2017-10-20 12:37:44 -04:00
..
aggressive_dead_code_elim_pass.cpp ADCE: Treat privates like locals in entry point with no calls 2017-10-13 15:39:14 -04:00
aggressive_dead_code_elim_pass.h ADCE: Treat privates like locals in entry point with no calls 2017-10-13 15:39:14 -04:00
basic_block.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
basic_block.h Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
block_merge_pass.cpp Opt: Have "size" passes process full entry point call tree. 2017-08-18 10:16:01 -04:00
block_merge_pass.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
build_module.cpp Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
build_module.h Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
cfg_cleanup_pass.cpp The reviewed cfg_cleanup optimize pass 2017-10-19 15:28:09 -04:00
cfg_cleanup_pass.h The reviewed cfg_cleanup optimize pass 2017-10-19 15:28:09 -04:00
CMakeLists.txt Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
common_uniform_elim_pass.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
common_uniform_elim_pass.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
compact_ids_pass.cpp Compact-ids pass should update the header ID bound 2017-10-03 11:24:28 -04:00
compact_ids_pass.h Added --compact-ids to /tools/opt 2017-04-20 10:54:39 -04:00
constants.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
dead_branch_elim_pass.cpp DeadBranchElim: Slightly more defensive coding 2017-10-19 19:28:45 -04:00
dead_branch_elim_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
decoration_manager.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
decoration_manager.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
def_use_manager.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
def_use_manager.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
eliminate_dead_constant_pass.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
eliminate_dead_constant_pass.h Add a C++ interface to the optimization functionalities. 2016-09-20 16:52:05 -04:00
eliminate_dead_functions_pass.cpp Create the dead function elimination pass 2017-09-26 11:18:06 -04:00
eliminate_dead_functions_pass.h Create the dead function elimination pass 2017-09-26 11:18:06 -04:00
flatten_decoration_pass.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
flatten_decoration_pass.h Add FlattenDecoration transform 2017-04-06 11:19:56 -04:00
fold_spec_constant_op_and_composite_pass.cpp The reviewed cfg_cleanup optimize pass 2017-10-19 15:28:09 -04:00
fold_spec_constant_op_and_composite_pass.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
fold.cpp Re-factor generic constant folding code out of FoldSpecConstantOpAndCompositePass 2017-10-17 19:41:37 -04:00
fold.h Re-factor generic constant folding code out of FoldSpecConstantOpAndCompositePass 2017-10-17 19:41:37 -04:00
freeze_spec_constant_value_pass.cpp Change interface of Pass::Process() to return possible failures. 2016-09-20 16:40:17 -04:00
freeze_spec_constant_value_pass.h Add a C++ interface to the optimization functionalities. 2016-09-20 16:52:05 -04:00
function.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
function.h CFG cleanup pass - Remove unreachable blocks. 2017-10-19 15:16:29 -04:00
inline_exhaustive_pass.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
inline_exhaustive_pass.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
inline_opaque_pass.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
inline_opaque_pass.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
inline_pass.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
inline_pass.h Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
insert_extract_elim.cpp ExtractInsert: Handle rudimentary CompositeConstruct and ConstantComposite 2017-09-15 20:33:53 -04:00
insert_extract_elim.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
instruction_list.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
instruction_list.h Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
instruction.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
instruction.h Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
ir_loader.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
ir_loader.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
iterator.h Add exhaustive function call inlining to spirv-opt 2017-03-29 18:02:40 -04:00
local_access_chain_convert_pass.cpp Change BasicBlock to use InstructionList to hold instructions. 2017-10-20 12:37:44 -04:00
local_access_chain_convert_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_single_block_elim_pass.cpp Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_single_block_elim_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_single_store_elim_pass.cpp Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_single_store_elim_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_ssa_elim_pass.cpp Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
local_ssa_elim_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04: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 Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
mem_pass.h Opt: Move *NextId functionality into MemPass 2017-10-13 15:22:19 -04:00
module.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
module.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
null_pass.h Add a C++ interface to the optimization functionalities. 2016-09-20 16:52:05 -04:00
optimizer.cpp The reviewed cfg_cleanup optimize pass 2017-10-19 15:28:09 -04:00
pass_manager.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
pass_manager.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
pass.cpp Create the dead function elimination pass 2017-09-26 11:18:06 -04:00
pass.h Add -O, -Os and -Oconfig flags. 2017-10-10 12:14:09 -04:00
passes.h CFG cleanup pass - Remove unreachable blocks. 2017-10-19 15:16:29 -04:00
reflect.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
remove_duplicates_pass.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
remove_duplicates_pass.h Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
set_spec_constant_default_value_pass.cpp Add bit pattern interface for setting default value for spec constants 2017-04-21 11:22:47 -04:00
set_spec_constant_default_value_pass.h Add bit pattern interface for setting default value for spec constants 2017-04-21 11:22:47 -04:00
strength_reduction_pass.cpp Add strength reduction; for now replace multiply by power of 2 2017-09-18 17:01:36 -04:00
strength_reduction_pass.h Add strength reduction; for now replace multiply by power of 2 2017-09-18 17:01:36 -04:00
strip_debug_info_pass.cpp Implement Linker (module combiner) 2017-10-06 18:33:53 -04:00
strip_debug_info_pass.h Add a C++ interface to the optimization functionalities. 2016-09-20 16:52:05 -04: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 Fix typo in method name Struct::AddMemberName 2017-04-01 11:19:40 -04: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 Change interface of Pass::Process() to return possible failures. 2016-09-20 16:40:17 -04:00
unify_const_pass.h Add a C++ interface to the optimization functionalities. 2016-09-20 16:52:05 -04:00