SPIRV-Tools/source
Nathan Gauër bc28ac7c19
opt: add OpExtInst forward ref fixup pass (#5708)
This pass fixups the opcode used for OpExtInst instructions
to use OpExtInstWithForwardRefsKHR when it contains a forward
reference.
This pass is agnostic to the extension used, hence the validity
of the code depends of the validity of the usage:

If a forward reference is used on a non-semantic extended instruction,
the generated code will remain invalid, but the opcode will change.
What this pass guarantees is valid code won't become invalid.

---------

Signed-off-by: Nathan Gauër <brioche@google.com>
Co-authored-by: Steven Perron <stevenperron@google.com>
2024-06-13 02:09:58 -07:00
..
diff Add support for LiteralFloat type (#5323) 2023-07-17 11:16:01 -04:00
fuzz Validate duplicate decorations and execution modes (#5641) 2024-04-12 08:51:41 -04:00
link linker: Add --use-highest-version option (#5376) 2023-08-21 17:05:33 -06:00
lint cmake: Modernize install(TARGET) usage (#5056) 2023-01-16 10:55:35 -05:00
opt opt: add OpExtInst forward ref fixup pass (#5708) 2024-06-13 02:09:58 -07:00
reduce cmake: Modernize install(TARGET) usage (#5056) 2023-01-16 10:55:35 -05:00
util Remove use of deprecated std::aligned_storage (#5183) 2023-04-06 17:22:28 +02:00
val Add KHR suffix to OpExtInstWithForwardRef opcode. (#5704) 2024-06-06 03:17:51 -07:00
wasm update tests for disassembly changes (#5694) 2024-06-05 13:23:01 -07:00
assembly_grammar.cpp Move token version/cap/ext checks from parsing to validation (#5370) 2023-08-10 12:19:12 -04:00
assembly_grammar.h Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
binary.cpp spirv-val, core: add support for OpExtInstWithForwardRefs (#5698) 2024-06-04 16:18:06 +02:00
binary.h Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
cfa.h Prevent null pointer from being dereferenced (#4971) 2022-10-24 15:16:33 -04:00
CMakeLists.txt add support for vulkan-shader-profiler external passes (#5512) 2024-03-15 13:46:42 -04:00
common_debug_info.h spirv-opt: Switch from Vulkan.DebugInfo to Shader.DebugInfo (#4493) 2021-09-15 14:38:53 -04:00
diagnostic.cpp fix strncpy bound error (#4331) 2021-06-29 10:07:13 -04:00
diagnostic.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
disassemble.cpp spirv-dis: add decorations to comments (#5675) 2024-06-10 15:22:25 -04:00
disassemble.h spirv-dis: add decorations to comments (#5675) 2024-06-10 15:22:25 -04:00
enum_set.h enumset: add iterator based constructor/insert (#5344) 2023-07-20 17:54:50 +00:00
enum_string_mapping.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
enum_string_mapping.h Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
ext_inst.cpp add support for vulkan-shader-profiler external passes (#5512) 2024-03-15 13:46:42 -04:00
ext_inst.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
extensions.cpp NFC: replace EnumSet::ForEach with range-based-for (#5322) 2023-07-13 14:40:47 -04:00
extensions.h NFC: rewrite EnumSet to handle larger enums. (#5289) 2023-07-07 10:41:52 -04:00
instruction.h Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
latest_version_glsl_std_450_header.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
latest_version_opencl_std_header.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
latest_version_spirv_header.h Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
libspirv.cpp libspirv.cpp: adds c++ api for spvBinaryParse (#5109) 2023-02-14 14:08:20 -05:00
macro.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
name_mapper.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
name_mapper.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode.cpp Add KHR suffix to OpExtInstWithForwardRef opcode. (#5704) 2024-06-06 03:17:51 -07:00
opcode.h Add KHR suffix to OpExtInstWithForwardRef opcode. (#5704) 2024-06-06 03:17:51 -07:00
operand.cpp Add KHR suffix to OpExtInstWithForwardRef opcode. (#5704) 2024-06-06 03:17:51 -07:00
operand.h spirv-val, core: add support for OpExtInstWithForwardRefs (#5698) 2024-06-04 16:18:06 +02:00
parsed_operand.cpp Add support for LiteralFloat type (#5323) 2023-07-17 11:16:01 -04:00
parsed_operand.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
pch_source.cpp Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
pch_source.h Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
print.cpp QNX has support for ANSI ESC codes, default terminal is QANSI. (#5387) 2023-08-30 14:51:03 -04:00
print.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
software_version.cpp Add missing function parameters in libspirv.h 2018-04-03 10:10:43 -04:00
spirv_constant.h Fix Linker generator ID (#4601) 2021-10-29 10:32:41 -04:00
spirv_definition.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
spirv_endian.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
spirv_endian.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
spirv_fuzzer_options.cpp spirv-fuzz: Add pass recommendations (#3757) 2020-09-18 15:51:35 +01:00
spirv_fuzzer_options.h spirv-fuzz: Add pass recommendations (#3757) 2020-09-18 15:51:35 +01:00
spirv_optimizer_options.cpp Add —preserve-bindings and —preserve-spec-constants (#2693) 2019-07-10 14:12:19 -04:00
spirv_optimizer_options.h Add —preserve-bindings and —preserve-spec-constants (#2693) 2019-07-10 14:12:19 -04:00
spirv_reducer_options.cpp spirv-reduce: Support reducing a specific function (#3774) 2020-09-11 06:29:43 +01:00
spirv_reducer_options.h spirv-reduce: Support reducing a specific function (#3774) 2020-09-11 06:29:43 +01:00
spirv_target_env.cpp Explicitly #include <utility> in spirv_target_env.cpp (#5159) 2023-03-15 13:15:29 +01:00
spirv_target_env.h Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
spirv_validator_options.cpp spirv-val: Add an option to use friendly names or not (#4951) 2022-09-30 12:22:00 -04:00
spirv_validator_options.h spirv-val: Add an option to use friendly names or not (#4951) 2022-09-30 12:22:00 -04:00
table.cpp Vulkan 1.3 (#4686) 2022-01-25 10:36:08 -05:00
table.h add support for vulkan-shader-profiler external passes (#5512) 2024-03-15 13:46:42 -04:00
text_handler.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
text_handler.h Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
text.cpp spirv-val, core: add support for OpExtInstWithForwardRefs (#5698) 2024-06-04 16:18:06 +02:00
text.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00