KhronosGroup / KhronosGroup/SPIRV-Tools

spirv-fuzz: Pure functions

Open
#3,725 1 comment 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

It might be good to know if a particular function is pure (i.e. it doesn't have any side-effects and its output only depends on its input).

This knowledge would allow us to do some interesting transformations. For example, we could permute calls to such functions.

This idea might be related to #3695. In particular, we would need to know if the function writes through any of its pointer parameters.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by reading this issue and related issue #3695, then determine how function purity and writes through pointer parameters should be identified. Done would mean a settled approach for recognizing pure functions so transformations such as permuting their calls can use that information.

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
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.