KhronosGroup / KhronosGroup/SPIRV-Tools

spirv-fuzz: Create synonyms for true and false using OpPtrEqual and OpPtrNotEqual

Open
#4,039 0 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

We can replace "false" with `OpPtrEqual p q` where we know that p and q point to different data, or with `OpPtrNotEqual` when we know they point to the same data, and we can do dual things for "true".

Two pointers could be derived using access chains involving constants (so that they are known to be identical) that might later get replaced with synonyms, making it less obvious they are constants.

Contributor guide

Open the contributing guide

Research direction

No file, test, or entry point is named. Start by locating the spirv-fuzz transformation code for boolean synonyms and its handling of OpPtrEqual and OpPtrNotEqual; done means covering true and false with known-same and known-different pointer cases, including constant-derived access chains.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.