Skip to content

Fix SSA-rewrite to remove DebugDeclare for variables without loads#3719

Merged
jaebaek merged 1 commit intoKhronosGroup:masterfrom
greg-lunarg:dbg_store7
Aug 24, 2020
Merged

Fix SSA-rewrite to remove DebugDeclare for variables without loads#3719
jaebaek merged 1 commit intoKhronosGroup:masterfrom
greg-lunarg:dbg_store7

Conversation

@greg-lunarg
Copy link
Copy Markdown
Contributor

Previously, the removal of DebugDeclares was predicated on the module "changing". In this case, "changing" actually meant loads being removed. This omitted the case where a variable had all its loads removed by a previous pass but still needed its DebugDeclare to be replaced with DebugValues by SSA-rewrite. The test case included in this PR gives further details.

This commit now has SSA-rewrite do the DebugDeclare removal unconditionally. It appears that the purpose of the previous condition was just one of optimization, so it seems that its removal will not cause a functional problem. It is imagined that few functions will not require SSA-Rewrite, so few functions will suffer compile-time degradation from this change, and for those that do, the degradation will likely be nearly insignificant.

@greg-lunarg
Copy link
Copy Markdown
Contributor Author

@jaebaek Can you please review?

@jaebaek jaebaek self-requested a review August 21, 2020 02:46
Copy link
Copy Markdown
Contributor

@jaebaek jaebaek left a comment

Choose a reason for hiding this comment

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

Sorry for being late. LGTM

@jaebaek jaebaek merged commit 12df3ca into KhronosGroup:master Aug 24, 2020
dnovillo added a commit to dnovillo/SPIRV-Tools that referenced this pull request Jan 25, 2022
google/googletest@bf0701d...f45d586

$ git log bf0701daa..f45d5865e --date=short --no-merges --format='%ad %ae %s'
2022-01-24 absl-team Make recreate_environments_when_repeating=false the default.
2022-01-19 absl-team Factor out AssertionResult into dedicated gtest-assertion-result header + implementation files to prevent cyclic includes between gtest.h and gtest_pred_impl.h
2022-01-18 absl-team Consistently apply IWYU pragmas across googletest and googlemock headers
2022-01-14 dinor Fix reference to source file in gmock FAQ
2022-01-14 dmauro Update test Docker image to GCC 11.2, Clang 14 (prerelease), CMake 3.22.1, and Bazel 4.2.2
2022-01-13 ayush854032 FIX KhronosGroup#2174 -- remove `DEBUG_POSTFIX`
2022-01-12 absl-team Fix run-on sentence
2022-01-06 hgsilverman Fix a typo in comments.
2021-12-22 hgsilverman Use normal for loop instead of accumulate.
2021-12-17 hgsilverman Improve code readablity.
2021-12-17 hgsilverman Apply requested changes to preserve old behavior.
2021-12-03 hgsilverman Reimplement MatchesFilter with new interfaces.
2021-11-23 hgsilverman Apply requested changes.
2021-10-17 hgsilverman Get rid of redundant filter matching code
2021-10-17 hgsilverman Add comments describing the behavior of filters
2021-10-17 hgsilverman Process filter string once instead of per test
2022-01-05 bsilver16384 Remove another GTEST_DISALLOW_ASSIGN_ that crept in
2022-01-04 4789010+ramkumar-kr Update example to reflect the tests below
2022-01-01 ayush854032 FIX KhronosGroup#3719 -- Fix `clang` conversion warnings
2021-12-27 absl-team Include the param names in the generated description of the MATCHER_P matchers.
2021-12-22 absl-team Clarify "package" means "Bazel package", and promote `testonly=True` rather than `testing` sub-directory.
2021-12-22 dmauro Makes the Python imports consistently use full paths from the repository root, unifying the behavior between Bazel and CMake
2021-12-21 dmauro Makes TestForDeathTest.CRTDebugDeath only run when _DEBUG is defined
2021-12-21 philip.j.m link to regex on qnx in cmake
2021-12-15 dinor Release tests for UnitTestOptions::MatchesFilter
2021-12-07 absl-team Add NOLINT to address modernize-use-trailing-return-type in TEST_F uses
2021-12-04 ayush854032 Allow to specify a random seed independently of whether shuffling is requested
2021-12-03 absl-team Support std::reference_wapper as a smart pointer type in gmock
2021-12-02 absl-team Fix typo in GoogleMock Cookbook.
2021-11-29 absl-team Work around Android KitKat tzset bug
2021-11-25 ludger.paehler Fix typo in the queue test.
2021-11-16 denis.samoylov Suppress unused-value warning
2021-11-16 93249401+assafpr fixed branch from master to main in readme.md
2021-11-16 93249401+assafpr Update README.md
2021-11-16 krystian.kuzniarek fix a typo
2021-11-15 cramertj Clarify "Times() after X" error message
2021-11-15 dmauro Update URLs in Bazel Quickstart
2021-11-12 absl-team Fix typo in gmock-matchers_test.cc: CanDescribeNegationOfExpectingOneElment => CanDescribeNegationOfExpectingOneElement
2021-11-10 absl-team Googletest export
2021-11-09 dmauro Googletest export
2021-11-10 memmenlauer googletest/src/gtest-port.cc: Added GetLastError() on Windows for CreateThread()
2021-11-09 absl-team Googletest export
2021-11-08 absl-team Googletest export
2021-11-08 absl-team Googletest export
2021-11-04 absl-team Googletest export
2021-11-05 raul.tambre Replace use of deprecated std::iterator
2021-10-20 h.zeller Start a simple github actions CI

Created with:
  roll-dep external/googletest
dnovillo added a commit that referenced this pull request Jan 26, 2022
* Roll external/googletest/ bf0701daa..f45d5865e (47 commits)

google/googletest@bf0701d...f45d586

$ git log bf0701daa..f45d5865e --date=short --no-merges --format='%ad %ae %s'
2022-01-24 absl-team Make recreate_environments_when_repeating=false the default.
2022-01-19 absl-team Factor out AssertionResult into dedicated gtest-assertion-result header + implementation files to prevent cyclic includes between gtest.h and gtest_pred_impl.h
2022-01-18 absl-team Consistently apply IWYU pragmas across googletest and googlemock headers
2022-01-14 dinor Fix reference to source file in gmock FAQ
2022-01-14 dmauro Update test Docker image to GCC 11.2, Clang 14 (prerelease), CMake 3.22.1, and Bazel 4.2.2
2022-01-13 ayush854032 FIX #2174 -- remove `DEBUG_POSTFIX`
2022-01-12 absl-team Fix run-on sentence
2022-01-06 hgsilverman Fix a typo in comments.
2021-12-22 hgsilverman Use normal for loop instead of accumulate.
2021-12-17 hgsilverman Improve code readablity.
2021-12-17 hgsilverman Apply requested changes to preserve old behavior.
2021-12-03 hgsilverman Reimplement MatchesFilter with new interfaces.
2021-11-23 hgsilverman Apply requested changes.
2021-10-17 hgsilverman Get rid of redundant filter matching code
2021-10-17 hgsilverman Add comments describing the behavior of filters
2021-10-17 hgsilverman Process filter string once instead of per test
2022-01-05 bsilver16384 Remove another GTEST_DISALLOW_ASSIGN_ that crept in
2022-01-04 4789010+ramkumar-kr Update example to reflect the tests below
2022-01-01 ayush854032 FIX #3719 -- Fix `clang` conversion warnings
2021-12-27 absl-team Include the param names in the generated description of the MATCHER_P matchers.
2021-12-22 absl-team Clarify "package" means "Bazel package", and promote `testonly=True` rather than `testing` sub-directory.
2021-12-22 dmauro Makes the Python imports consistently use full paths from the repository root, unifying the behavior between Bazel and CMake
2021-12-21 dmauro Makes TestForDeathTest.CRTDebugDeath only run when _DEBUG is defined
2021-12-21 philip.j.m link to regex on qnx in cmake
2021-12-15 dinor Release tests for UnitTestOptions::MatchesFilter
2021-12-07 absl-team Add NOLINT to address modernize-use-trailing-return-type in TEST_F uses
2021-12-04 ayush854032 Allow to specify a random seed independently of whether shuffling is requested
2021-12-03 absl-team Support std::reference_wapper as a smart pointer type in gmock
2021-12-02 absl-team Fix typo in GoogleMock Cookbook.
2021-11-29 absl-team Work around Android KitKat tzset bug
2021-11-25 ludger.paehler Fix typo in the queue test.
2021-11-16 denis.samoylov Suppress unused-value warning
2021-11-16 93249401+assafpr fixed branch from master to main in readme.md
2021-11-16 93249401+assafpr Update README.md
2021-11-16 krystian.kuzniarek fix a typo
2021-11-15 cramertj Clarify "Times() after X" error message
2021-11-15 dmauro Update URLs in Bazel Quickstart
2021-11-12 absl-team Fix typo in gmock-matchers_test.cc: CanDescribeNegationOfExpectingOneElment => CanDescribeNegationOfExpectingOneElement
2021-11-10 absl-team Googletest export
2021-11-09 dmauro Googletest export
2021-11-10 memmenlauer googletest/src/gtest-port.cc: Added GetLastError() on Windows for CreateThread()
2021-11-09 absl-team Googletest export
2021-11-08 absl-team Googletest export
2021-11-08 absl-team Googletest export
2021-11-04 absl-team Googletest export
2021-11-05 raul.tambre Replace use of deprecated std::iterator
2021-10-20 h.zeller Start a simple github actions CI

Created with:
  roll-dep external/googletest

* Roll external/re2/ 4244cd1cb..611baecbc (42 commits)

google/re2@4244cd1...611baec

$ git log 4244cd1cb..611baecbc --date=short --no-merges --format='%ad %ae %s'
2022-01-24 junyer Update to the latest version of FuzzedDataProvider.
2022-01-19 junyer Replace the build job with the build-appleclang job.
2022-01-18 junyer Address a `-Wunused-but-set-variable' warning from Clang 13.x.
2022-01-18 junyer Fix the build job on macos-latest.
2022-01-17 junyer Remove GCC 4.x and 5.x from the CI configuration.
2022-01-16 stefano Don't specify the `-std` flag in Makefile or re2.pc.
2022-01-12 junyer Use Python 3 shebangs for make_unicode_*.py.
2021-12-24 andrei.bencsik Fix CMake packaging for installation.
2021-11-18 junyer Remove a redundant map access.
2021-11-02 junyer Produce static-testinstall and shared-testinstall binaries.
2021-10-27 junyer Precompute bit_state_text_max_size during compilation.
2021-10-27 junyer Fix another latent bug in Regexp::Walker<T>::Reset().
2021-10-25 junyer Update Unicode data to 14.0.0.
2021-10-25 junyer Make the fuzzer check for large subexpressions.
2021-10-23 junyer Address a `-Wshadow' warning.
2021-10-19 junyer Don't assume that iterators can be compared.
2021-10-18 junyer Switch back to native C++ rules.
2021-09-02 junyer Crudely limit the use of 'k', 'K', 's' and 'S' when fuzzing.
2021-09-02 junyer Inspect substrings with a Walker<> instead of Prefilter.
2021-08-31 junyer thread_local support in MinGW seems to be buggy.
2021-08-26 junyer Use SRWLOCK_INIT instead of InitializeSRWLock().
2021-08-23 junyer Add Clang 13 to the build matrix.
2021-08-13 junyer Tweak the OnePass versus DFA cutoff.
2021-08-09 junyer Improve the D wrapper details.
2021-08-09 junyer Mention the D wrapper.
2021-08-03 junyer Fix breakage when RE2_USE_ICU is defined.
2021-08-03 junyer Permit Unicode characters beyond ASCII in capture names.
2021-07-24 junyer Further reduce the maximum repeat count when fuzzing.
2021-07-08 junyer Add a SECURITY.md file.
2021-07-07 junyer Note that case-insensitive prefixes are already lowercase.
2021-07-06 junyer Tidy up BuildShiftDFA() a bit more.
2021-07-06 junyer Flip the hot loops to do-while.
2021-07-06 junyer Optimise the hot loop some more for Clang.
2021-07-06 junyer Work around a code generation issue seen with Clang.
2021-07-05 junyer Fix a couple of style nits.
2021-07-04 junyer Fix a bug that affects 32-bit platforms.
2021-07-03 junyer Implement case-insensitive prefix acceleration.
2021-07-02 junyer Add Search_Easy2_Cached* benchmarks.
2021-06-30 junyer Migration from master to main.
2021-06-23 junyer Revert "Yikes. int64_t{1}<<31 doesn't actually make sense."
2021-06-23 junyer Fix GetCachedProg() for OnePass.
2021-06-23 junyer Yikes. int64_t{1}<<31 doesn't actually make sense.

Created with:
  roll-dep external/re2

* Roll external/spirv-headers/ eddd4df..b42ba6d (2 commits)

KhronosGroup/SPIRV-Headers@eddd4df...b42ba6d

$ git log eddd4df..b42ba6d --date=short --no-merges --format='%ad %ae %s'
2022-01-17 michael.kinsner Allocate additional loop control bit for upcoming Intel extension
2021-11-16 dragonjoker59 Add ShaderWriter as SPIR-V generation tool.

Created with:
  roll-dep external/spirv-headers
dneto0 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
Roll third_party/glslang/ 983698b..517f39e (1 commit)

KhronosGroup/glslang@983698b...517f39e

$ git log 983698b..517f39e --date=short --no-merges --format='%ad %ae %s'
2020-08-26 jmadill Suppress two override suggestion warnings.

Created with:
  roll-dep third_party/glslang

Roll third_party/googletest/ 1e315c5b1..df6b75949 (1 commit)

google/googletest@1e315c5...df6b759

$ git log 1e315c5b1..df6b75949 --date=short --no-merges --format='%ad %ae %s'
2020-08-26 absl-team Googletest export

Created with:
  roll-dep third_party/googletest

Roll third_party/spirv-tools/ 4dd1223..8a0ebd4 (14 commits)

KhronosGroup/SPIRV-Tools@4dd1223...8a0ebd4

$ git log 4dd1223..8a0ebd4 --date=short --no-merges --format='%ad %ae %s'
2020-08-31 jaebaek Correctly replace debug lexical scope of instruction (KhronosGroup#3718)
2020-08-28 afdx spirv-fuzz: Remove opaque pointer design pattern (KhronosGroup#3755)
2020-08-27 stefanomil spirv-fuzz: Create synonym via OpPhi and existing synonyms (KhronosGroup#3701)
2020-08-27 stefanomil Add LoopNestingDepth function to StructuredCFGAnalysis (KhronosGroup#3754)
2020-08-27 afdx spirv-fuzz: Do not make synonyms of void result ids (KhronosGroup#3747)
2020-08-26 greg Do not register DebugFunction for functions optimized away. (KhronosGroup#3749)
2020-08-26 jaebaek Handle DebugScope in compact-ids pass (KhronosGroup#3724)
2020-08-26 afdx spirv-fuzz: Overflow ids (KhronosGroup#3734)
2020-08-25 greg Fix DebugNoScope to not output InlinedAt operand. (KhronosGroup#3748)
2020-08-25 vasniktel spirv-fuzz: Split the fact manager into multiple files (KhronosGroup#3699)
2020-08-25 andreperezmaselco.developer spirv-fuzz: Add inline function transformation (KhronosGroup#3517)
2020-08-25 vasniktel spirv-fuzz: Fix MaybeGetZeroConstant (KhronosGroup#3740)
2020-08-24 greg Fix SSA-rewrite to remove DebugDeclare for variables without loads (KhronosGroup#3719)
2020-08-24 stevenperron Add undef for inlined void function (KhronosGroup#3720)

Created with:
  roll-dep third_party/spirv-tools
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.

2 participants