SPIRV-Tools/source
Pierre Moreau c38495656d
Linker improvements (#4679)
* test/linker: Code factorisation and small tweaks

* linker: Do not fail when going over limits

The limits are minima and implementations or APIs might support higher
limits, so just warn the user about it. And only check for the limits
right before emitting the binary, as limits might change earlier when
removing duplicate instructions, function prototypes, etc.
The only check performed right before merging, is making sure the ID
bound will not overflow the 32 bits following the merge.

Also, use the defines for the limits instead of hard-coding them.

* linker: Require a memory model in each input module

The existing code could run into weird situation. For example, if the
first module had no memory model, it would not emit any memory model
(sort of reasonable) and would accept without complains all possible mix
from later modules as it would not verify them.

* linker: Replace hex version with SPV_SPIRV_VERSION_WORD

* linker: Error out when linking together different versions

Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/4135

* tools/linker: Do not write to disk if linking failed

Also, do not consider warnings as errors.

* tools/linker: Fix formatting in help message

* tools/linker: Further clarify the use of --target-env

Also update the text for the default version to reflect the change made
in 7d768812 ("Basic support for SPIR-V 1.6 (#4663)").
2022-01-22 15:40:19 -05:00
..
fuzz Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
link Linker improvements (#4679) 2022-01-22 15:40:19 -05:00
lint spirv-lint: Add lint based on divergence analysis (#4488) 2021-08-27 14:43:23 -04:00
opt Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
reduce spirv-reduce: Eliminate skeletal structured control flow construct (#4360) 2021-07-06 07:14:36 +01:00
util Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
val Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
wasm Add SPIR-V 1.6 support to wasm build (#4674) 2022-01-13 13:49:35 -05:00
assembly_grammar.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
assembly_grammar.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
binary.cpp Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
binary.h Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
cfa.h Remove duplicated "the" from comments (#4666) 2022-01-12 19:04:13 -05:00
CMakeLists.txt In generated cmake config file for SPIRV-Tools only access cmake target, if present (#4590) 2021-10-29 14:05:45 -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 Refactor the disassembler code for reuse (#4616) 2021-12-14 09:46:59 -05:00
disassemble.h Refactor the disassembler code for reuse (#4616) 2021-12-14 09:46:59 -05:00
enum_set.h Instrument: Debug Printf support (#3215) 2020-03-12 09:19:52 -04:00
enum_string_mapping.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
enum_string_mapping.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
ext_inst.cpp Basic support for SPIR-V 1.6 (#4663) 2021-12-15 14:38:28 -05:00
ext_inst.h Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
extensions.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
extensions.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -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 Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
libspirv.cpp Remove WebGPU support (#4108) 2021-01-14 16:45:18 -05:00
macro.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
name_mapper.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
name_mapper.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
opcode.cpp Add validation for SPV_EXT_shader_atomic_float_min_max (#4105) 2021-03-24 08:49:21 -04:00
opcode.h Take new (raytracing) termination instructions into account. (#4050) 2020-12-07 10:26:05 -05:00
operand.cpp spirv-opt: Switch from Vulkan.DebugInfo to Shader.DebugInfo (#4493) 2021-09-15 14:38:53 -04:00
operand.h Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
parsed_operand.cpp Replace asserts with returns 2018-08-08 15:13:04 -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 Enabled tvOS platform (#4329) 2021-06-29 15:14:38 -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 Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
spirv_endian.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
spirv_endian.h Rewrite include guards (#1793) 2018-08-03 08:05:33 -04: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 Basic support for SPIR-V 1.6 (#4663) 2021-12-15 14:38:28 -05:00
spirv_target_env.h Stop consuming input in fuzzers to select target environment (#4544) 2021-10-04 13:42:12 -04:00
spirv_validator_options.cpp Add a feature for allowing LocalSizeId (#4492) 2021-08-26 14:33:19 -04:00
spirv_validator_options.h Add a feature for allowing LocalSizeId (#4492) 2021-08-26 14:33:19 -04:00
table.cpp Basic support for SPIR-V 1.6 (#4663) 2021-12-15 14:38:28 -05:00
table.h Use last version (#2578) 2019-05-10 11:02:01 -04:00
text_handler.cpp Fix endianness of string literals (#4622) 2021-12-08 12:01:26 -05:00
text_handler.h Remove source/message.h (#1838) 2018-08-14 15:41:21 -04:00
text.cpp Avoid uninitialized access to instruction opcode (#4673) 2022-01-04 17:33:33 +00:00
text.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00