KhronosGroup / KhronosGroup/SPIRV-Tools

Enable disassembly in presence of unknown extensions and unknown instructions

Open
#597 7 comments 0 reactions 0 assignees View on GitHub
component:as/dis enhancement spirv:assembly
Dominant language
C++
Stars
1.4k
Forks
709
Avg merge
1d 22h
Merged PRs (30d)
28

Description

Requires extending the operand type enum to include "unknown word" concept. The words will not register as IDs, and so aren't tracked as types in the binary parser.
The validator can't know what the values are, and so things like SSA checks could fail. That's life.

Contributor guide

Open the contributing guide

Research direction

Start by tracing disassembly through the operand type enum and binary parser, focusing on how unknown extensions and unknown instructions are represented. Then inspect validator handling, including SSA checks, to determine the expected behavior for values that cannot be identified as types. Done means disassembly works without registering unknown words as IDs while validation handles the resulting unknown values.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.