KhronosGroup / KhronosGroup/SPIRV-Tools
spirv-fuzz: Fuzzer pass to do arbitrary id replacements in dead blocks
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 709
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 28
Description
For good reasons we are going to ban creation of synonyms in dead blocks, because ids in dead blocks are regarded as irrelevant and having synonyms of irrelevant ids doesn't make sense.
However, within dead blocks there is no harm in replacing a use of an id with a definition of any other available id with the same type.
Therefore we should have a new fuzzer pass that does this, or check whether this is already adequately handled by FuzzerPassReplaceIrrelevantIds (perhaps it is).
Contributor guide
Research direction
Start by inspecting FuzzerPassReplaceIrrelevantIds to determine whether it already handles replacements in dead blocks. Compare its behavior with the requested same-type arbitrary id substitutions and the ban on creating synonyms. Done means dead-block uses can be replaced by available same-type ids without introducing dead-block synonyms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100