Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spirv-fuzz: Add fuzzer passes to add loads/stores #3176

Merged
merged 3 commits into from
Feb 6, 2020

Conversation

afd
Copy link
Contributor

@afd afd commented Feb 6, 2020

This change adds fuzzer passes that sprinkle loads and stores into a
module at random, with stores restricted to occur in either dead
blocks, or to use pointers for which it is known that the pointee
value does not influence the module's overall behaviour.

The change also generalises the VariableValueIsArbitrary fact to
PointeeValueIsIrrelevant, to allow stores through access chains or
object copies of variables whose values are known to be irrelevant.

The change includes some other minor refactorings.

@afd afd requested a review from paulthomson February 6, 2020 14:26
source/fuzz/fuzzer_pass_add_loads.cpp Outdated Show resolved Hide resolved
source/fuzz/fuzzer_pass_add_stores.cpp Outdated Show resolved Hide resolved
source/fuzz/fuzzer_pass_add_stores.cpp Show resolved Hide resolved
source/fuzz/fuzzer_util.h Outdated Show resolved Hide resolved
source/fuzz/fuzzer_util.cpp Outdated Show resolved Hide resolved
@afd afd merged commit fe10239 into KhronosGroup:master Feb 6, 2020
@afd afd deleted the fuzzer-memory-accesses branch February 6, 2020 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants