Skip to content

Add removing references to debug instructions when removing them#2923

Merged
zoddicus merged 7 commits intoKhronosGroup:masterfrom
zoddicus:fixChromium1007125
Sep 27, 2019
Merged

Add removing references to debug instructions when removing them#2923
zoddicus merged 7 commits intoKhronosGroup:masterfrom
zoddicus:fixChromium1007125

Conversation

@zoddicus
Copy link
Copy Markdown
Contributor

Fixes #2921

Copy link
Copy Markdown
Contributor

@alan-baker alan-baker left a comment

Choose a reason for hiding this comment

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

You should also add a test for an OpName targeting an OpString.

@zoddicus
Copy link
Copy Markdown
Contributor Author

You should also add a test for an OpName targeting an OpString.

Done

Copy link
Copy Markdown
Contributor

@alan-baker alan-baker left a comment

Choose a reason for hiding this comment

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

Nit about validation

SinglePassRunAndCheck<StripDebugInfoPass>(JoinAllInsts(input),
JoinAllInsts(output),
/* skip_nop = */ false,
/* do_validation */ false);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would turn validation on if possible.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

@zoddicus zoddicus requested a review from s-perron September 27, 2019 14:41
@zoddicus
Copy link
Copy Markdown
Contributor Author

I am unclear on why I am getting an OOB error in this test only on MSVC 2015 & 2017

@s-perron
Copy link
Copy Markdown
Collaborator

I think I see why you get the failure on Windows, and it is a legit error.

The test StripDebugStringTest.OpNameRemoved has two instructions that need to be removed:

                "%3 = OpString \"minimal.vert\"",
                     "OpName %3 \"bob\"",

If you kill the OpString first, it will remove the name when you call KillNameAndDecorates in KillInst. So the name is kill, but it will still be in the set of instructions to kill. After killing the OpString instruction, it will try to kill the OpName instruction, which is a dangling pointer.

This error is not deterministic because you are using an unorder_set. If you kill the OpName first, then there is no problem.

@zoddicus zoddicus merged commit 4075b92 into KhronosGroup:master Sep 27, 2019
@zoddicus zoddicus deleted the fixChromium1007125 branch September 27, 2019 18:23
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decorations referring to OpString not being removed by StripDebugInstructionPass

3 participants