mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-24 04:20:13 +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 |
||
---|---|---|
.. | ||
fuzz | ||
link | ||
opt | ||
reduce | ||
util | ||
val | ||
assembly_grammar.cpp | ||
assembly_grammar.h | ||
binary.cpp | ||
binary.h | ||
cfa.h | ||
CMakeLists.txt | ||
diagnostic.cpp | ||
diagnostic.h | ||
disassemble.cpp | ||
disassemble.h | ||
enum_set.h | ||
enum_string_mapping.cpp | ||
enum_string_mapping.h | ||
ext_inst.cpp | ||
ext_inst.h | ||
extensions.cpp | ||
extensions.h | ||
extinst.debuginfo.grammar.json | ||
extinst.spv-amd-gcn-shader.grammar.json | ||
extinst.spv-amd-shader-ballot.grammar.json | ||
extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json | ||
extinst.spv-amd-shader-trinary-minmax.grammar.json | ||
instruction.h | ||
latest_version_glsl_std_450_header.h | ||
latest_version_opencl_std_header.h | ||
latest_version_spirv_header.h | ||
libspirv.cpp | ||
macro.h | ||
name_mapper.cpp | ||
name_mapper.h | ||
opcode.cpp | ||
opcode.h | ||
operand.cpp | ||
operand.h | ||
parsed_operand.cpp | ||
parsed_operand.h | ||
pch_source.cpp | ||
pch_source.h | ||
print.cpp | ||
print.h | ||
software_version.cpp | ||
spirv_constant.h | ||
spirv_definition.h | ||
spirv_endian.cpp | ||
spirv_endian.h | ||
spirv_fuzzer_options.cpp | ||
spirv_fuzzer_options.h | ||
spirv_optimizer_options.cpp | ||
spirv_optimizer_options.h | ||
spirv_reducer_options.cpp | ||
spirv_reducer_options.h | ||
spirv_target_env.cpp | ||
spirv_target_env.h | ||
spirv_validator_options.cpp | ||
spirv_validator_options.h | ||
table.cpp | ||
table.h | ||
text_handler.cpp | ||
text_handler.h | ||
text.cpp | ||
text.h |