SPIRV-Tools/source/opt
Nicolas Capens 130a05d2e3
Fold multiply and subtraction into FMA with negation (#4808)
This change adds a folding rule which transforms x * y - a and a - x * y
into FMA(x, y, -a) and FMA(-x, y, a), respectively.

While the SPIR-V instruction count remains the same, target instruction
sets typically feature FMA instruction variants that can negate an
operand. Also this transformation may unlock further optimizations which
eliminate the negation.

(Google bug: b/226145988)
2022-05-31 12:03:56 -04:00
..
aggressive_dead_code_elim_pass.cpp Add SPV_KHR_fragment_shader_barycentric support (#4805) 2022-05-25 09:20:39 -04:00
aggressive_dead_code_elim_pass.h Change branch handling in ADCE to fix errors (#4596) 2021-10-29 10:46:43 -04:00
amd_ext_to_khr.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
amd_ext_to_khr.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
basic_block.cpp Take new (raytracing) termination instructions into account. (#4050) 2020-12-07 10:26:05 -05:00
basic_block.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
block_merge_pass.cpp Opt passes should apply to the exported functions (#4554) 2021-10-18 13:18:16 -04: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 Fix merge-block assertions with debugInfo (#4563) 2021-10-13 11:42:40 -06: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 BuildModule: optionally avoid adding new OpLine instructions (#4033) 2020-11-25 14:54:32 -05:00
build_module.h BuildModule: optionally avoid adding new OpLine instructions (#4033) 2020-11-25 14:54:32 -05:00
ccp_pass.cpp Generalize assert in ccp (#4735) 2022-03-07 19:33:10 +00:00
ccp_pass.h Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/4462 (#4651) 2021-12-02 10:40:28 -05: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 Handle id overflow in the ssa rewriter. (#2845) 2019-09-10 09:38:23 -04:00
cfg.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
CMakeLists.txt spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -04:00
code_sink.cpp Add validation for SPV_EXT_shader_atomic_float_min_max (#4105) 2021-03-24 08:49:21 -04:00
code_sink.h Sink (#2284) 2019-01-17 15:56:36 -05:00
combine_access_chains.cpp Update passes to handle function declarations (#4599) 2021-10-28 11:54:37 -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 Reset the id bound on the module in compact ids (#4744) 2022-03-07 20:33:01 +00: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 Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
const_folding_rules.h Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
constants.cpp avoid unnecessary reallocations in GetOperandConstants (#4708) 2022-02-10 18:31:24 +00:00
constants.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
control_dependence.cpp Add control dependence analysis to opt (#4380) 2021-07-28 12:44:32 -04:00
control_dependence.h spirv-opt: Rename ControlDependenceAnalysis::DoesBlockExist to HasBlock (#4412) 2021-07-29 08:30:48 -04:00
convert_to_half_pass.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
convert_to_half_pass.h Fix handling of OpPhi in convert-relaxed-to-half (#4618) 2021-11-09 10:36:50 -07:00
convert_to_sampled_image_pass.cpp Add spirv-opt convert-to-sampled-image pass (#4340) 2021-08-18 08:30:48 -04:00
convert_to_sampled_image_pass.h Add spirv-opt convert-to-sampled-image pass (#4340) 2021-08-18 08:30:48 -04:00
copy_prop_arrays.cpp Handle propagation of arrays with decorations (#4717) 2022-02-11 16:13:14 -05:00
copy_prop_arrays.h Handle propagation of arrays with decorations (#4717) 2022-02-11 16:13:14 -05:00
dataflow.cpp spirv-opt: Add dataflow analysis framework (#4402) 2021-08-09 16:43:36 -04:00
dataflow.h spirv-opt: Add dataflow analysis framework (#4402) 2021-08-09 16:43:36 -04:00
dead_branch_elim_pass.cpp Qualify std::move. (#4741) 2022-03-22 11:20:11 -04:00
dead_branch_elim_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
dead_insert_elim_pass.cpp Opt passes should apply to the exported functions (#4554) 2021-10-18 13:18:16 -04: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
debug_info_manager.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
debug_info_manager.h spirv-opt: Switch from Vulkan.DebugInfo to Shader.DebugInfo (#4493) 2021-09-15 14:38:53 -04:00
decoration_manager.cpp Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574) 2021-10-26 17:20:58 -04:00
decoration_manager.h Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574) 2021-10-26 17:20:58 -04:00
def_use_manager.cpp Optimize DefUseManager allocations (#4709) 2022-02-15 19:17:30 -05:00
def_use_manager.h Optimize DefUseManager allocations (#4709) 2022-02-15 19:17:30 -05:00
desc_sroa_util.cpp Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574) 2021-10-26 17:20:58 -04:00
desc_sroa_util.h Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574) 2021-10-26 17:20:58 -04:00
desc_sroa.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
desc_sroa.h Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
dominator_analysis.cpp spirv-opt: Add support for OpLabel to dominator analysis (#3516) 2020-07-15 12:59:35 +01:00
dominator_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
dominator_tree.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
dominator_tree.h Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05: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 Fix crash when optimizing shaders with DebugPrintf (#4280) 2021-05-13 13:19:56 -04: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_input_components_pass.cpp spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
eliminate_dead_input_components_pass.h spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
eliminate_dead_members_pass.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -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
empty_pass.h Temporarily add EmptyPass to prevent glslang from failing (#4004) 2020-10-30 18:03:56 -04:00
feature_manager.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
feature_manager.h Handle NonSemantic.Shader Debug[No]Line (#4530) 2021-09-24 10:56:08 -04:00
fix_func_call_arguments.cpp spirv-opt : Add FixFuncCallArgumentsPass (#4775) 2022-05-06 10:39:26 -04:00
fix_func_call_arguments.h spirv-opt : Add FixFuncCallArgumentsPass (#4775) 2022-05-06 10:39:26 -04:00
fix_storage_class.cpp spirv-opt: Don't call GenerateCopy for mismatched image types (#4126) 2021-02-19 10:59:14 -05: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 Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05: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 Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
fold.h Refactor instruction folders (#2815) 2019-08-26 18:54:11 -04:00
folding_rules.cpp Fold multiply and subtraction into FMA with negation (#4808) 2022-05-31 12:03:56 -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 spirv-opt: Set parent when adding basic block (#4021) 2020-11-13 12:33:15 -05:00
function.h Update passes to handle function declarations (#4599) 2021-10-28 11:54:37 -04:00
graphics_robust_access_pass.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
graphics_robust_access_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
if_conversion.cpp spirv-opt: skips if_conversion when dontflatten is set (#4770) 2022-04-28 19:26:02 +00:00
if_conversion.h Make the constant and type manager analyses. (#2250) 2018-12-20 18:00:05 +00:00
inline_exhaustive_pass.cpp Opt passes should apply to the exported functions (#4554) 2021-10-18 13:18:16 -04:00
inline_exhaustive_pass.h Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_opaque_pass.cpp Opt passes should apply to the exported functions (#4554) 2021-10-18 13:18:16 -04:00
inline_opaque_pass.h Handle id overflow in inlining. (#2196) 2018-12-18 19:34:03 +00:00
inline_pass.cpp Handle NonSemantic.Shader Debug[No]Line (#4530) 2021-09-24 10:56:08 -04:00
inline_pass.h Fix -Wextra-semi-stmt -Wsuggest-destructor-override -Wdeprecated-copy-dtor (#4164) 2021-03-09 13:16:43 +00:00
inst_bindless_check_pass.cpp spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
inst_bindless_check_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
inst_buff_addr_check_pass.cpp Fix inst_buff_addr_check to handle struct loads (#4489) 2021-09-23 12:59:38 -04:00
inst_buff_addr_check_pass.h Fix inst_buff_addr_check to handle struct loads (#4489) 2021-09-23 12:59:38 -04:00
inst_debug_printf_pass.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
inst_debug_printf_pass.h Remove deprecated interfaces from instrument passes (#3361) 2020-05-21 13:10:42 -04:00
instruction_list.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction_list.h Update a few virtuals to overrides. (#4143) 2021-02-10 13:21:38 -05:00
instruction.cpp Optimize Instruction::Instruction (#4705) 2022-02-10 18:31:07 +00:00
instruction.h Optimize Instruction::Instruction (#4705) 2022-02-10 18:31:07 +00:00
instrument_pass.cpp spirv-opt: Set parent when adding basic block (#4021) 2020-11-13 12:33:15 -05:00
instrument_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
interface_var_sroa.cpp spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -04:00
interface_var_sroa.h spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -04:00
interp_fixup_pass.cpp spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
interp_fixup_pass.h Add interpolate legalization pass (#4220) 2021-03-31 14:26:36 -04:00
ir_builder.h spirv-opt : Add FixFuncCallArgumentsPass (#4775) 2022-05-06 10:39:26 -04:00
ir_context.cpp Handle dontinline function in spread-volatile-semantics (#4776) 2022-05-04 10:52:58 -04:00
ir_context.h spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -04:00
ir_loader.cpp spirv-opt: Add OpExecutionModeId support (#4719) 2022-02-14 14:33:29 +00:00
ir_loader.h BuildModule: optionally avoid adding new OpLine instructions (#4033) 2020-11-25 14:54:32 -05:00
iterator.h Avoid bugprone-move-forwarding-reference warning in Clang (#4560) 2021-10-06 16:50:16 -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 Add SPV_KHR_fragment_shader_barycentric support (#4805) 2022-05-25 09:20:39 -04:00
local_access_chain_convert_pass.h Handle 64-bit integers in local access chain convert (#4798) 2022-05-10 17:02:14 +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_KHR_fragment_shader_barycentric support (#4805) 2022-05-25 09:20:39 -04:00
local_single_block_elim_pass.h Update access control lists. (#3433) 2020-06-15 13:20:40 -04:00
local_single_store_elim_pass.cpp Add SPV_KHR_fragment_shader_barycentric support (#4805) 2022-05-25 09:20:39 -04:00
local_single_store_elim_pass.h Add DebugValue for invisible store in single_store_elim (#4002) 2020-11-04 13:43:59 -05: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 Don't try to unroll loop with step count 0. (#4769) 2022-04-11 10:21:15 -04:00
loop_descriptor.h Don't try to unroll loop with step count 0. (#4769) 2022-04-11 10:21:15 -04:00
loop_fission.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_fission.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_fusion_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
loop_fusion_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_fusion.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_fusion.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_peeling.cpp spirv-opt: Set parent when adding basic block (#4021) 2020-11-13 12:33:15 -05:00
loop_peeling.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_unroller.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -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 Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
loop_unswitch_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05: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 Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
mem_pass.cpp More ADCE refactoring (#4548) 2021-10-04 08:33:10 -04:00
mem_pass.h Fix -Wextra-semi-stmt -Wsuggest-destructor-override -Wdeprecated-copy-dtor (#4164) 2021-03-09 13:16:43 +00:00
merge_return_pass.cpp Don't rebuilt valid analyses. (#4733) 2022-03-04 20:16:42 +00:00
merge_return_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
module.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
module.h Use schema instead of reserved in header description (#4615) 2021-12-08 11:55:36 -05:00
null_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
optimizer.cpp spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -04:00
pass_manager.cpp Improvements to disassembly within PassManager (#4677) 2022-01-10 10:55:47 -05:00
pass_manager.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
pass.cpp Handle NonSemantic.Shader Debug[No]Line (#4530) 2021-09-24 10:56:08 -04:00
pass.h spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
passes.h spirv-opt: add pass for interface variable scalar replacement (#4779) 2022-05-09 14:04:52 -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 Qualify std::move. (#4741) 2022-03-22 11:20:11 -04:00
private_to_local_pass.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05: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 Set threshold for reduce-load-size pass (#4499) 2021-09-02 10:45:51 -04:00
reduce_load_size.h Set threshold for reduce-load-size pass (#4499) 2021-09-02 10:45:51 -04:00
redundancy_elimination.cpp Update passes to handle function declarations (#4599) 2021-10-28 11:54:37 -04:00
redundancy_elimination.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
reflect.h Update SPIRV-Headers (#4628) 2021-11-10 16:32:09 -05:00
register_pressure.cpp Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
register_pressure.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
relax_float_ops_pass.cpp Opt passes should apply to the exported functions (#4554) 2021-10-18 13:18:16 -04:00
relax_float_ops_pass.h Add --relax-float-ops and --convert-relaxed-to-half (#2808) 2019-09-03 13:22:13 -04:00
remove_dontinline_pass.cpp Add pass to remove DontInline function control (#4747) 2022-03-07 12:45:17 -05:00
remove_dontinline_pass.h Add pass to remove DontInline function control (#4747) 2022-03-07 12:45:17 -05:00
remove_duplicates_pass.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
remove_duplicates_pass.h Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) 2019-05-29 16:12:02 -04:00
remove_unused_interface_variables_pass.cpp spirv-opt: A pass to removed unused input on OpEntryPoint instructions. (#4275) 2021-06-29 11:33:58 -04:00
remove_unused_interface_variables_pass.h spirv-opt: A pass to removed unused input on OpEntryPoint instructions. (#4275) 2021-06-29 11:33:58 -04:00
replace_desc_array_access_using_var_index.cpp Handle chains of OpAccessChain in replacing variable index access for flattened resources. (#4797) 2022-05-10 11:41:43 -04:00
replace_desc_array_access_using_var_index.h Handle chains of OpAccessChain in replacing variable index access for flattened resources. (#4797) 2022-05-10 11:41:43 -04:00
replace_invalid_opc.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
replace_invalid_opc.h Add testing framework for tools. 2018-08-17 15:03:14 -04:00
scalar_analysis_nodes.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
scalar_analysis_simplification.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
scalar_analysis.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
scalar_analysis.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
scalar_replacement_pass.cpp Have scalar replacement use undef instead of null (#4691) 2022-02-03 15:51:15 +00:00
scalar_replacement_pass.h Have scalar replacement use undef instead of null (#4691) 2022-02-03 15:51:15 +00:00
set_spec_constant_default_value_pass.cpp opt: set upper bits of spec constant according to spec (#4589) 2021-10-21 09: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 Update passes to handle function declarations (#4599) 2021-10-28 11:54:37 -04:00
simplification_pass.h Add two new simplifications. (#2984) 2019-10-28 08:19:38 -07:00
spread_volatile_semantics.cpp Handle dontinline function in spread-volatile-semantics (#4776) 2022-05-04 10:52:58 -04:00
spread_volatile_semantics.h Handle dontinline function in spread-volatile-semantics (#4776) 2022-05-04 10:52:58 -04:00
ssa_rewrite_pass.cpp Update passes to handle function declarations (#4599) 2021-10-28 11:54:37 -04:00
ssa_rewrite_pass.h Add DebugValue for DebugDecl invisible to value assignment (#3973) 2020-10-27 15:10:08 -04:00
strength_reduction_pass.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strength_reduction_pass.h Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
strip_debug_info_pass.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
strip_debug_info_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
strip_nonsemantic_info_pass.cpp reflect debug (#4662) 2021-12-15 11:06:51 -05:00
strip_nonsemantic_info_pass.h Rename strip reflect to strip nonsemantic (#4661) 2021-12-15 09:55:30 -05:00
struct_cfg_analysis.cpp spirv-opt: Add function to compute nesting depth of a block (#3771) 2020-09-08 12:01:56 +01:00
struct_cfg_analysis.h spirv-opt: Add function to compute nesting depth of a block (#3771) 2020-09-08 12:01:56 +01:00
tree_iterator.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
type_manager.cpp Complete handling of RayQueryKHR type (#4690) 2022-01-31 15:44:32 +00:00
type_manager.h Manually fold floating point division by zero (#4637) 2021-11-24 14:13:58 -05:00
types.cpp spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
types.h spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 2022-03-22 20:50:52 -06:00
unify_const_pass.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
unify_const_pass.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
upgrade_memory_model.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
upgrade_memory_model.h Handle volatile memory semantics in upgrade (#2674) 2019-06-17 16:01:37 -04:00
value_number_table.cpp spirv-opt: Where possible make code agnostic of opencl/vulkan debuginfo (#4385) 2021-07-21 12:04:38 -04:00
value_number_table.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
vector_dce.cpp Handle out-of-bounds accesses in VDCE (#4518) 2021-09-13 09:57:44 -04:00
vector_dce.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -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 spirv-opt: Set parent when adding basic block (#4021) 2020-11-13 12:33:15 -05:00
wrap_opkill.h Support SPV_KHR_terminate_invocation (#3568) 2020-07-22 11:45:02 -04:00