SPIRV-Tools/source/opt
Ben Clayton 5a581e738c spvtools::Optimizer - don't assume original_binary and optimized_binary are aliased (#2799)
If they are not aliased, the function will always print the message:

     "Binary unexpectedly changed despite optimizer saying there was no change"

Which is (usually) totally bogus.

Fixes #2798
2019-08-29 10:04:55 -04:00
..
aggressive_dead_code_elim_pass.cpp Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779) 2019-08-08 09:45:59 -04:00
aggressive_dead_code_elim_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
basic_block.cpp Change implementation of post order CFG traversal (#2543) 2019-04-29 17:09:20 -04:00
basic_block.h Change implementation of post order CFG traversal (#2543) 2019-04-29 17:09:20 -04:00
block_merge_pass.cpp Extracted block merging functionality into its own utility file (#2325) 2019-01-25 10:57:13 +00:00
block_merge_pass.h Extracted block merging functionality into its own utility file (#2325) 2019-01-25 10:57:13 +00:00
block_merge_util.cpp Don't merge unreachable blocks (#2375) 2019-02-12 09:24:01 -05:00
block_merge_util.h Extracted block merging functionality into its own utility file (#2325) 2019-01-25 10:57:13 +00:00
build_module.cpp Move make_unique to source/util. (#1836) 2018-08-14 12:44:54 -04:00
build_module.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ccp_pass.cpp Removing decorations when doing constant propagation. (#2444) 2019-03-13 10:40:49 -04:00
ccp_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
cfg_cleanup_pass.cpp Don't inline recursive functions. (#2130) 2018-11-29 14:24:58 -05:00
cfg_cleanup_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
cfg.cpp Change implementation of post order CFG traversal (#2543) 2019-04-29 17:09:20 -04:00
cfg.h Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
CMakeLists.txt Instrument: Add support for Buffer Device Address extension (#2792) 2019-08-16 09:18:34 -04:00
code_sink.cpp Handle instructions not in blocks in code sinking. (#2308) 2019-01-21 12:09:56 -05:00
code_sink.h Sink (#2284) 2019-01-17 15:56:36 -05:00
combine_access_chains.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
combine_access_chains.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
compact_ids_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
compact_ids_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
composite.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
composite.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
const_folding_rules.cpp Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
const_folding_rules.h Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
constants.cpp Treat access chain indexes as signed in SROA (#2776) 2019-07-31 15:39:33 -04:00
constants.h Treat access chain indexes as signed in SROA (#2776) 2019-07-31 15:39:33 -04:00
copy_prop_arrays.cpp Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
copy_prop_arrays.h Fix up type mismatches. (#2545) 2019-05-02 09:31:46 -04:00
dead_branch_elim_pass.cpp Change the order branches are simplified in dead branch elim (#2728) 2019-07-10 14:59:44 -04:00
dead_branch_elim_pass.h Change the order branches are simplified in dead branch elim (#2728) 2019-07-10 14:59:44 -04:00
dead_insert_elim_pass.cpp Don't inline recursive functions. (#2130) 2018-11-29 14:24:58 -05:00
dead_insert_elim_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
dead_variable_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dead_variable_elimination.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
decompose_initialized_variables_pass.cpp Add support for Private & Output to initializer decompose flag (#2537) 2019-04-25 16:24:32 -04:00
decompose_initialized_variables_pass.h Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
decoration_manager.cpp Handle decorations better in some optimizations (#2716) 2019-07-10 11:37:16 -04:00
decoration_manager.h Handle decorations better in some optimizations (#2716) 2019-07-10 11:37:16 -04:00
def_use_manager.cpp Add base and core bindless validation instrumentation classes (#2014) 2018-11-08 13:54:54 -05:00
def_use_manager.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
desc_sroa.cpp Add name for variables in desc sroa (#2805) 2019-08-21 10:55:02 -04:00
desc_sroa.h Add descriptor array scalar replacement (#2742) 2019-08-08 10:53:19 -04:00
dominator_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_tree.cpp Fix readbility/braces warnings (#1804) 2018-08-07 09:09:47 -04:00
dominator_tree.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_constant_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_constant_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
eliminate_dead_functions_pass.cpp Fixes #2358. Added to the reducer the ability to remove a function t… (#2361) 2019-02-08 16:20:29 +00:00
eliminate_dead_functions_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
eliminate_dead_functions_util.cpp Fixes #2358. Added to the reducer the ability to remove a function t… (#2361) 2019-02-08 16:20:29 +00:00
eliminate_dead_functions_util.h Fixes #2358. Added to the reducer the ability to remove a function t… (#2361) 2019-02-08 16:20:29 +00:00
eliminate_dead_members_pass.cpp Don't change type of input and output var in dead member elim (#2412) 2019-02-20 18:59:41 -05:00
eliminate_dead_members_pass.h Don't change type of input and output var in dead member elim (#2412) 2019-02-20 18:59:41 -05:00
feature_manager.cpp Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
feature_manager.h Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
fix_storage_class.cpp Fix up type mismatches. (#2545) 2019-05-02 09:31:46 -04:00
fix_storage_class.h Fix up type mismatches. (#2545) 2019-05-02 09:31:46 -04:00
flatten_decoration_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
flatten_decoration_pass.h Add testing framework for tools. 2018-08-17 15:03:14 -04:00
fold_spec_constant_op_and_composite_pass.cpp Add folding rules for OpQuantizeToF16 (#2614) 2019-05-21 23:15:01 -07:00
fold_spec_constant_op_and_composite_pass.h Using the instruction folder to fold OpSpecConstantOp (#2598) 2019-05-21 12:45:00 -04:00
fold.cpp Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
fold.h Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
folding_rules.cpp Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
folding_rules.h Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
freeze_spec_constant_value_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
freeze_spec_constant_value_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function.cpp Add pass to fix some invalid unreachable blocks for WebGPU (#2563) 2019-05-09 12:56:10 -04:00
function.h Add pass to fix some invalid unreachable blocks for WebGPU (#2563) 2019-05-09 12:56:10 -04:00
generate_webgpu_initializers_pass.cpp Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
generate_webgpu_initializers_pass.h Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
graphics_robust_access_pass.cpp Add pass to inject code for robust-buffer-access semantics (#2771) 2019-07-30 19:52:46 -04:00
graphics_robust_access_pass.h Remove unimplemented method declaration (#2804) 2019-08-20 08:53:27 -04:00
if_conversion.cpp Fix restrictions in if conversion (#1998) 2018-10-19 15:16:46 -04:00
if_conversion.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
inline_exhaustive_pass.cpp Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_exhaustive_pass.h Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_opaque_pass.cpp Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_opaque_pass.h Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_pass.cpp Revert "Do not inline OpKill Instructions (#2713)" (#2749) 2019-07-17 14:59:05 -04:00
inline_pass.h Revert "Do not inline OpKill Instructions (#2713)" (#2749) 2019-07-17 14:59:05 -04:00
inst_bindless_check_pass.cpp Bindless Instrument: Make init check depend solely on input_init_enabled (#2753) 2019-07-22 13:51:39 -04:00
inst_bindless_check_pass.h Bindless Instrument: Make init check depend solely on input_init_enabled (#2753) 2019-07-22 13:51:39 -04:00
inst_buff_addr_check_pass.cpp Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
inst_buff_addr_check_pass.h Instrument: Add support for Buffer Device Address extension (#2792) 2019-08-16 09:18:34 -04:00
instruction_list.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction_list.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.cpp Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
instruction.h Add pass to inject code for robust-buffer-access semantics (#2771) 2019-07-30 19:52:46 -04:00
instrument_pass.cpp Instrument: Add support for Buffer Device Address extension (#2792) 2019-08-16 09:18:34 -04:00
instrument_pass.h Instrument: Add support for Buffer Device Address extension (#2792) 2019-08-16 09:18:34 -04:00
ir_builder.h Handle overflow in wrap-opkill (#2801) 2019-08-18 19:00:18 -04:00
ir_context.cpp Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
ir_context.h Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
ir_loader.cpp spirv-opt: Behave a bit better in the face of unknown instructions (#2487) 2019-04-05 13:36:42 -04:00
ir_loader.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
iterator.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
legalize_vector_shuffle_pass.cpp Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
legalize_vector_shuffle_pass.h Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
licm_pass.cpp In LICM don't place code between merge instruction and branch. (#2252) 2018-12-20 18:33:52 -05:00
licm_pass.h In LICM don't place code between merge instruction and branch. (#2252) 2018-12-20 18:33:52 -05:00
local_access_chain_convert_pass.cpp Whitelist SPV_GOOGLE_user_type. (#2673) 2019-06-19 12:18:13 -04:00
local_access_chain_convert_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
local_redundancy_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
local_redundancy_elimination.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
local_single_block_elim_pass.cpp Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779) 2019-08-08 09:45:59 -04:00
local_single_block_elim_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
local_single_store_elim_pass.cpp Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779) 2019-08-08 09:45:59 -04:00
local_single_store_elim_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
local_ssa_elim_pass.cpp Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779) 2019-08-08 09:45:59 -04:00
local_ssa_elim_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
log.h Cast __LINE__ to size_t (#2661) 2019-06-07 13:06:42 -04:00
loop_dependence_helpers.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_dependence.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_dependence.h Remove extra semis (#2717) 2019-07-08 15:07:36 -04:00
loop_descriptor.cpp Fix memory leak in unrolling. (#2301) 2019-01-17 16:02:43 -05:00
loop_descriptor.h Fix memory leak in unrolling. (#2301) 2019-01-17 16:02:43 -05:00
loop_fission.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
loop_fission.h Add testing framework for tools. 2018-08-17 15:03:14 -04:00
loop_fusion_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_peeling.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
loop_peeling.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_unroller.cpp Fix memory leak in unrolling. (#2301) 2019-01-17 16:02:43 -05:00
loop_unroller.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
loop_unswitch_pass.cpp Don't fold specialized branches in loop unswitch (#2245) 2018-12-19 04:40:30 +00:00
loop_unswitch_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_utils.cpp Document in the context what happens with id overflow. (#2159) 2018-12-06 09:07:00 -05:00
loop_utils.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
mem_pass.cpp Consider atomics that load when analyzing live stores in ADCE (#1956) (#1958) 2018-10-12 08:46:35 -04:00
mem_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
merge_return_pass.cpp Fix check for unreachable blocks in merge-return (#2762) 2019-07-25 09:34:18 -04:00
merge_return_pass.h Record correct dominators in merge return (#2760) 2019-07-24 13:56:54 -04:00
module.cpp Add option for the max id bound. (#1870) 2018-09-10 11:49:41 -04:00
module.h Add option for the max id bound. (#1870) 2018-09-10 11:49:41 -04:00
null_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
optimizer.cpp spvtools::Optimizer - don't assume original_binary and optimized_binary are aliased (#2799) 2019-08-29 10:04:55 -04:00
pass_manager.cpp Add option to validate after each pass (#2462) 2019-03-26 14:38:59 -04:00
pass_manager.h Add option to validate after each pass (#2462) 2019-03-26 14:38:59 -04:00
pass.cpp Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
pass.h Fix up type mismatches. (#2545) 2019-05-02 09:31:46 -04:00
passes.h Instrument: Add support for Buffer Device Address extension (#2792) 2019-08-16 09:18:34 -04:00
pch_source_opt.cpp Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
pch_source_opt.h Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
private_to_local_pass.cpp Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
private_to_local_pass.h Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
process_lines_pass.cpp Add passes to propagate and eliminate redundant line instructions (#2027). (#2039) 2018-11-15 14:06:17 -05:00
process_lines_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
propagator.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
propagator.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reduce_load_size.cpp Have replace load size handle extact with no index. (#2261) 2019-01-03 13:02:10 -05:00
reduce_load_size.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
redundancy_elimination.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
redundancy_elimination.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
reflect.h Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
register_pressure.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
register_pressure.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
remove_duplicates_pass.cpp Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) 2019-05-29 16:12:02 -04:00
remove_duplicates_pass.h Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) 2019-05-29 16:12:02 -04:00
replace_invalid_opc.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
replace_invalid_opc.h Add testing framework for tools. 2018-08-17 15:03:14 -04:00
scalar_analysis_nodes.h Remove extra semis (#2717) 2019-07-08 15:07:36 -04:00
scalar_analysis_simplification.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_replacement_pass.cpp Even more id overflow in sroa (#2806) 2019-08-21 13:12:42 -04:00
scalar_replacement_pass.h Even more id overflow in sroa (#2806) 2019-08-21 13:12:42 -04:00
set_spec_constant_default_value_pass.cpp Move make_unique to source/util. (#1836) 2018-08-14 12:44:54 -04:00
set_spec_constant_default_value_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
simplification_pass.cpp Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
simplification_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
split_invalid_unreachable_pass.cpp Add pass to fix some invalid unreachable blocks for WebGPU (#2563) 2019-05-09 12:56:10 -04:00
split_invalid_unreachable_pass.h Add pass to fix some invalid unreachable blocks for WebGPU (#2563) 2019-05-09 12:56:10 -04:00
ssa_rewrite_pass.cpp SSA rewriter: Don't use trivial phis (#2757) 2019-07-23 17:59:30 -04:00
ssa_rewrite_pass.h SSA rewriter: Don't use trivial phis (#2757) 2019-07-23 17:59:30 -04:00
strength_reduction_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strength_reduction_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_atomic_counter_memory_pass.cpp Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
strip_atomic_counter_memory_pass.h Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 2019-04-16 14:31:36 -04:00
strip_debug_info_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_debug_info_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_reflect_info_pass.cpp Remove MemberDecorateStringGOOGLE during stript-refect. (#2021) 2018-10-30 16:17:35 -04:00
strip_reflect_info_pass.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
struct_cfg_analysis.cpp Handle nested breaks from switches. (#2624) 2019-05-27 16:28:14 -04:00
struct_cfg_analysis.h Handle nested breaks from switches. (#2624) 2019-05-27 16:28:14 -04:00
tree_iterator.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
type_manager.cpp Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
type_manager.h Handle Id overflow in private-to-local (#2807) 2019-08-22 09:14:48 -04:00
types.cpp Replace OpKill With function call. (#2790) 2019-08-14 09:27:12 -04:00
types.h Replace OpKill With function call. (#2790) 2019-08-14 09:27:12 -04:00
unify_const_pass.cpp Move make_unique to source/util. (#1836) 2018-08-14 12:44:54 -04:00
unify_const_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
upgrade_memory_model.cpp Check feature mgr in context consistency check (#2818) 2019-08-28 11:49:16 -04:00
upgrade_memory_model.h Handle volatile memory semantics in upgrade (#2674) 2019-06-17 16:01:37 -04:00
value_number_table.cpp Handle decorations better in some optimizations (#2716) 2019-07-10 11:37:16 -04:00
value_number_table.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
vector_dce.cpp Handle extract with no index in VDCE. (#2305) 2019-01-18 15:43:36 -05:00
vector_dce.h Handle extract with no index in VDCE. (#2305) 2019-01-18 15:43:36 -05:00
workaround1209.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
workaround1209.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
wrap_opkill.cpp Handle overflow in wrap-opkill (#2801) 2019-08-18 19:00:18 -04:00
wrap_opkill.h Handle overflow in wrap-opkill (#2801) 2019-08-18 19:00:18 -04:00