spirv-fuzz: Fixes to preconditions for adding dead break/continue edges#2904
Merged
afd merged 5 commits intoKhronosGroup:masterfrom Sep 25, 2019
Merged
spirv-fuzz: Fixes to preconditions for adding dead break/continue edges#2904afd merged 5 commits intoKhronosGroup:masterfrom
afd merged 5 commits intoKhronosGroup:masterfrom
Conversation
paulthomson
reviewed
Sep 25, 2019
…t when it is OK from a dominance perspective to add a new edge to a control flow graph.
2a13367 to
e2a8223
Compare
paulthomson
approved these changes
Sep 25, 2019
dneto0
pushed a commit
to dneto0/SPIRV-Tools
that referenced
this pull request
Sep 14, 2024
Roll third_party/glslang/ 973d0e5..7bc0473 (1 commit) KhronosGroup/glslang@973d0e5...7bc0473 $ git log 973d0e5..7bc0473 --date=short --no-merges --format='%ad %ae %s' 2019-09-18 laddoc Reflection will crash when the VS input symbol defines the same name with FS output symbol Roll third_party/googletest/ f2fb48c3b..dc1ca9ae4 (7 commits) google/googletest@f2fb48c...dc1ca9a $ git log f2fb48c3b..dc1ca9ae4 --date=short --no-merges --format='%ad %ae %s' 2019-09-29 misterg Googletest export 2019-09-27 misterg Googletest export 2019-09-25 absl-team Googletest export 2019-09-25 absl-team Googletest export 2019-09-24 absl-team Googletest export 2019-09-19 absl-team Googletest export 2019-09-27 gennadiycivil Bump llvm version to 4 so brew can work again Roll third_party/spirv-headers/ 601d738..842ec90 (4 commits) KhronosGroup/SPIRV-Headers@601d738...842ec90 $ git log 601d738..842ec90 --date=short --no-merges --format='%ad %ae %s' 2019-09-24 ehsannas Improve the doc on using Bazel. 2019-09-24 rex.xu Bump the SPIR-V version to 1.5 2019-09-23 ehsannas Update documentation. 2019-09-18 ehsannas Add a Bazel build file. Roll third_party/spirv-tools/ f62ee4a..9eb1c9a (22 commits) KhronosGroup/SPIRV-Tools@f62ee4a...9eb1c9a $ git log f62ee4a..9eb1c9a --date=short --no-merges --format='%ad %ae %s' 2019-10-01 stevenperron Add continue construct analysis to struct cfg analysis (KhronosGroup#2922) 2019-09-27 stevenperron Record trailing line dbg instructions (KhronosGroup#2926) 2019-09-27 rharrison Add removing references to debug instructions when removing them (KhronosGroup#2923) 2019-09-27 paulthomson spirv-fuzz: allow interestingness script arguments (KhronosGroup#2925) 2019-09-27 ehsannas Add Kokoro bots for building with Bazel. (KhronosGroup#2914) 2019-09-27 alanbaker Refactor the InstructionPass (KhronosGroup#2924) 2019-09-26 afdx spirv-fuzz: do not allow a dead break to target an unreachable block (KhronosGroup#2917) 2019-09-26 afdx spirv-fuzz: preserve some analyses when permuting blocks (KhronosGroup#2918) 2019-09-25 alanbaker Only allow previously declared forward refs in structs (KhronosGroup#2920) 2019-09-25 stevenperron Handle id overflow in wrap-opkill (KhronosGroup#2916) 2019-09-25 afdx spirv-fuzz: do not replace struct indices with synonyms (KhronosGroup#2915) 2019-09-25 afdx spirv-fuzz: Fixes to preconditions for adding dead break/continue edges (KhronosGroup#2904) 2019-09-25 afdx spirv-fuzz: do not replace a pointer argument to a function call with a synonym (KhronosGroup#2901) 2019-09-25 afdx spirv-fuzz: do not replace boolean constant argument to OpPhi instruction (KhronosGroup#2903) 2019-09-24 alanbaker Remove validate_datarules.cpp (KhronosGroup#2911) 2019-09-24 stevenperron Handle extract with no indexes (KhronosGroup#2910) 2019-09-24 ehsannas Add Bazel build configuration. (KhronosGroup#2891) 2019-09-24 stevenperron Handle id overflow in convert local access chains (KhronosGroup#2908) 2019-09-24 dsinclair Add OpCopyMemory test to SVA. (KhronosGroup#2885) 2019-09-23 dsinclair Add missing GN dependency (KhronosGroup#2899) 2019-09-23 afdx Employ the "swarm testing" idea in spirv-fuzz (KhronosGroup#2890) 2019-09-23 afdx Fix operand index in spirv-fuzz (KhronosGroup#2895) Created with: roll-dep third_party/effcee third_party/glslang third_party/googletest third_party/re2 third_party/spirv-cross third_party/spirv-headers third_party/spirv-tools
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issues #2898 and #2900 identify some cases where adding a dead
continue would lead to an invalid module, and these turned out to be
due to the lack of sensible dominance information when a continue
target is unreachable. This change requires that the header of a loop
dominates the loop's continue target if a dead continue is to be
added.
Furthermore, issue #2905 identified a shortcoming in the algorithm
being used to identify when it is OK, from a dominance point of view,
to add a new break/continue edge to a control flow graph. This change
replaces that algorithm with a simpler and more obviously correct
algorithm (that incidentally does not require the new edge to be a
break/continue edge in particular).
Fixes #2898.
Fixes #2900.
Fixes #2905.