KhronosGroup / KhronosGroup/SPIRV-Tools

spirv-fuzz: Fuzzer pass to do arbitrary id replacements in dead blocks

Open
#3,843 3 comments 0 reactions 0 assignees View on GitHub
component:fuzzer
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.