Skip to content

spirv-fuzz: Split blocks starting with OpPhi before trying to outline#3581

Merged
afd merged 2 commits intoKhronosGroup:masterfrom
stefanomil:outliner-split-blocks-starting-with-opphi
Jul 27, 2020
Merged

spirv-fuzz: Split blocks starting with OpPhi before trying to outline#3581
afd merged 2 commits intoKhronosGroup:masterfrom
stefanomil:outliner-split-blocks-starting-with-opphi

Conversation

@stefanomil
Copy link
Copy Markdown
Collaborator

This PR modifies FuzzerPassOutlineFunctions so that it tries to split
a block starting with OpPhi instructions, so that it is more likely
that the selected blocks can be outlined using
TransformationOutlineFunction.

Fixes #3094 .

Copy link
Copy Markdown
Contributor

@paulthomson paulthomson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me.

Maybe we should try to do this later so there is less chance of splitting blocks that have no chance of leading to an applicable function outline transformation, but perhaps it is fine.

Please add a new test for your change.

@stefanomil
Copy link
Copy Markdown
Collaborator Author

What would be a good way of testing this? The change does not affect the transformation itself, it just modifies the module during the fuzzer pass.

@paulthomson
Copy link
Copy Markdown
Contributor

Good point!

@afd afd merged commit 98ac9fd into KhronosGroup:master Jul 27, 2020
@afd
Copy link
Copy Markdown
Contributor

afd commented Jul 27, 2020

@paulthomson I know what you mean about it possibly being bad that this splits blocks that then can't be outlined, but on balance I don't think it matters.

dnovillo pushed a commit to dnovillo/SPIRV-Tools that referenced this pull request Aug 19, 2020
…KhronosGroup#3581)

This PR modifies FuzzerPassOutlineFunctions so that it tries to split
a block starting with OpPhi instructions, so that it is more likely
that the selected blocks can be outlined using
TransformationOutlineFunction.

Fixes KhronosGroup#3094.
dneto0 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
* Rolling 2 dependencies and updating expectations

Roll third_party/spirv-cross/ 6575e451f..0376576d2 (5 commits)

KhronosGroup/SPIRV-Cross@6575e45...0376576

$ git log 6575e451f..0376576d2 --date=short --no-merges --format='%ad %ae %s'
2020-07-22 tommek Enabling setting a fixed sampleMask in Metal fragment shaders.
2020-02-20 cdavis MSL: Add support for processing more than one patch per workgroup.
2020-07-22 dsinclair Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
2020-07-22 cdavis MSL: Factor creating a uint type into its own method.
2020-07-22 cdavis MSL: Factor a really gnarly condition into its own method.

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/spirv-tools/ 969f028..b63f0e5 (13 commits)

KhronosGroup/SPIRV-Tools@969f028...b63f0e5

$ git log 969f028..b63f0e5 --date=short --no-merges --format='%ad %ae %s'
2020-07-27 rdb Fix SyntaxWarning in Python 3.8 (KhronosGroup#3388)
2020-07-27 bclayton CMake: Enable building with BUILD_SHARED_LIBS=1 (KhronosGroup#3490)
2020-07-27 dneto Avoid operand type range checks (KhronosGroup#3379)
2020-07-27 jaebaek Preserve debug info in scalar replacement pass (KhronosGroup#3461)
2020-07-27 pierremoreau Update OpenCL capabilities validation (KhronosGroup#3149)
2020-07-27 stevenperron build(deps): bump lodash from 4.17.15 to 4.17.19 in /tools/sva (KhronosGroup#3596)
2020-07-27 antonikarp spirv-fuzz: adds TransformationReplaceLoadStoreWithCopyMemory (KhronosGroup#3586)
2020-07-27 jaebaek Preserve OpenCL.DebugInfo.100 through private-to-local pass (KhronosGroup#3571)
2020-07-27 stefanomil spirv-fuzz: Relax type checking for int contants (KhronosGroup#3573)
2020-07-27 stefanomil spirv-fuzz: Generalise transformation access chain (KhronosGroup#3546)
2020-07-27 stefanomil spirv-fuzz: Split blocks starting with OpPhi before trying to outline (KhronosGroup#3581)
2020-07-27 afdx spirv-fuzz: Set message consumer in replayer when shrinking (KhronosGroup#3591)
2020-07-24 vasniktel spirv-fuzz: Don't use default parameters (KhronosGroup#3583)

Created with:
  roll-dep third_party/spirv-tools

* Add in missing expectations update
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.

spirv-fuzz: have outliner split blocks that start with OpPhi to make it apply more aggressively

4 participants