mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-26 21:30:07 +00:00
e70b009b0f
Add support for SPV_KHR_non_semantic_info This entails a couple of changes: - Allowing unknown OpExtInstImport that begin with the prefix `NonSemantic.` - Allowing OpExtInst that reference any of those sets to contain unknown ext inst instruction numbers, and assume the format is always a series of IDs as guaranteed by the extension. - Allowing those OpExtInst to appear in the types/variables/constants section. - Not stripping OpString in the --strip-debug pass, since it may be referenced by these non-semantic OpExtInsts. - Stripping them instead in the --strip-reflect pass. * Add adjacency validation of non-semantic OpExtInst - We validate and test that OpExtInst cannot appear before or between OpPhi instructions, or before/between OpFunctionParameter instructions. * Change non-semantic extinst type to single value * Add helper function spvExtInstIsNonSemantic() which will check if the extinst set is non-semantic or not, either the unknown generic value or any future recognised non-semantic set. * Add test of a complex non-semantic extinst * Use DefUseManager in StripDebugInfoPass to strip some OpStrings * Any OpString used by a non-semantic instruction cannot be stripped, all others can so we search for uses to see if each string can be removed. * We only do this if the non-semantic debug info extension is enabled, otherwise all strings can be trivially removed. * Silence -Winconsistent-missing-override in protobufs |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
pch_test_val.cpp | ||
pch_test_val.h | ||
val_adjacency_test.cpp | ||
val_arithmetics_test.cpp | ||
val_atomics_test.cpp | ||
val_barriers_test.cpp | ||
val_bitwise_test.cpp | ||
val_builtins_test.cpp | ||
val_capability_test.cpp | ||
val_cfg_test.cpp | ||
val_code_generator.cpp | ||
val_code_generator.h | ||
val_composites_test.cpp | ||
val_constants_test.cpp | ||
val_conversion_test.cpp | ||
val_data_test.cpp | ||
val_decoration_test.cpp | ||
val_derivatives_test.cpp | ||
val_entry_point.cpp | ||
val_explicit_reserved_test.cpp | ||
val_ext_inst_test.cpp | ||
val_extensions_test.cpp | ||
val_fixtures.h | ||
val_function_test.cpp | ||
val_id_test.cpp | ||
val_image_test.cpp | ||
val_interfaces_test.cpp | ||
val_layout_test.cpp | ||
val_limits_test.cpp | ||
val_literals_test.cpp | ||
val_logicals_test.cpp | ||
val_memory_test.cpp | ||
val_misc_test.cpp | ||
val_modes_test.cpp | ||
val_non_semantic_test.cpp | ||
val_non_uniform_test.cpp | ||
val_opencl_test.cpp | ||
val_primitives_test.cpp | ||
val_small_type_uses_test.cpp | ||
val_ssa_test.cpp | ||
val_state_test.cpp | ||
val_storage_test.cpp | ||
val_type_unique_test.cpp | ||
val_validation_state_test.cpp | ||
val_version_test.cpp | ||
val_webgpu_test.cpp |