mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2025-01-10 00:30:06 +00:00
2889a0c21c
- The SPIR-V spec generator has changed how it represents optional operands. Now it tracks a separate boolean flag indicating optionality. However, SPIRV-Tools still wants to represent both operand class and optionality in the same enums space (SPV_OPERAND_TYPE_*). So there's extra work in the patch. - In the spec generator, OperandImage is now OperandImageOperands. This affects enum translation in opcode.cpp. - In the spec generator, image operands are explicitly followed by Id, and VariableIds. However, SPIRV-Tools uses the bits set in the image operand bitmask to control the number and meaning of the Ids that follow. So in writing the opcode.inc syntax table, drop all operands after OperandImageOperands. - Some enums are now more explicitly represented in the generated opcode.inc: - AccessQualifier (e.g. on OpTypeImage), in both required and optional flavours. - MemoryAccess (e.g. on loads and stores) - Add SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER - Add tests for the optional AccessQualifier operand on OpTypeImage. - Update the AccessQualifier test for OpTypeImage so it's a round trip test through the disassembler as well. |
||
---|---|---|
.. | ||
assembly_grammar.cpp | ||
assembly_grammar.h | ||
binary.cpp | ||
binary.h | ||
diagnostic.cpp | ||
diagnostic.h | ||
disassemble.cpp | ||
ext_inst.cpp | ||
ext_inst.h | ||
instruction.h | ||
opcode.cpp | ||
opcode.h | ||
opcode.inc | ||
opencl_std_ext_inst.inc | ||
operand.cpp | ||
operand.h | ||
print.cpp | ||
print.h | ||
spirv_constant.h | ||
spirv_definition.h | ||
spirv_endian.cpp | ||
spirv_endian.h | ||
spirv_operands.h | ||
syntax_tables.patch | ||
table.cpp | ||
table.h | ||
text_handler.cpp | ||
text_handler.h | ||
text.cpp | ||
text.h | ||
validate_cfg.cpp | ||
validate_id.cpp | ||
validate_instruction.cpp | ||
validate_layout.cpp | ||
validate_passes.h | ||
validate_ssa.cpp | ||
validate_types.cpp | ||
validate.cpp | ||
validate.h |