Commit Graph

2570 Commits

Author SHA1 Message Date
David Neto f04eaee63d Fix round trip tests that weren't instantiated (#3417)
Need to actually instantiate them with TEST_P in the same source file.

Remove the instantiation of RoundTripTest from unit.cpp because
it's viewed as having no instantiations.
2020-06-10 11:11:46 -04:00
Vasyl Teliman 1d73b5bd03 spirv-fuzz: Add a test (#3238)
Add a test for issue #3237
2020-06-10 14:13:40 +01:00
Vasyl Teliman 8c606b0cae spirv-fuzz: Add support for OpSpecConstant* (#3373)
Fixes #3371.
2020-06-10 01:01:15 +01:00
Vasyl Teliman 56a7c603e4 spirv-fuzz: Fix replayer bug (#3401)
Fixes #3395.
2020-06-05 14:34:39 +01:00
André Perez d36faa2b6f Add value instruction condition (#3385)
This change fixes an assertion failure related to the push
id through variable transformation. In the fuzzer pass class
it was missing the IdIsAvailableBeforeInstruction condition
that is checked in the IsApplicable function.
2020-06-05 12:30:51 +01:00
André Perez 8d2b5fed20 Fix instruction function use (#3390)
This change replaces the instruction function GetSingleWordOperand
with GetSingleWordInOperand. Debugging spirv-fuzz, GetSingleWordOperand
was returning the result id of an OpLoad instruction with memory operands.
2020-06-05 12:29:23 +01:00
Vasyl Teliman 7378fd2bdb spirv-fuzz: Fix regression (#3396)
Fixes #3392.
2020-06-05 12:28:07 +01:00
Paul Thomson e5f68a562f Fix googletest inclusion (#3398)
The googletest root CMakeLists.txt now sets a GOOGLETEST_VERSION variable, which is needed by the subprojects. Use add_subdirectory(external/googletest EXCLUDE_FROM_ALL) to add the root CMakeLists.txt file, which by default builds GMock. We already use EXCLUDE_FROM_ALL, which should shield us from e.g. building their tests, etc. If this causes issues in the future, we can change the googletest CMakeLists.txt file to only mess with compiler settings etc. if it is the root build.
2020-06-04 09:15:33 -04:00
Jaebaek Seo 16c3b71f8c Add tests for merge-return debug info preservation (#3389)
* Add tests for merge-return debug info preservation

* No instruct btw merge and terminator
2020-06-02 10:32:03 -04:00
André Perez 7c2fac8481 spirv-fuzz: Add push id through variable transformation (#3359)
Makes an id synonym by storing an id to a new variable and then
loading it back from that variable.

Fixes #3192.
2020-05-29 16:43:38 +01:00
Ryan Harrison 943c61155b Rolling 4 dependencies (#3380)
Roll external/effcee/ cd25ec17e..5af957bbf (3 commits)

https://github.com/google/effcee/compare/cd25ec17e938...5af957bbfc7d

$ git log cd25ec17e..5af957bbf --date=short --no-merges --format='%ad %ae %s'
2019-12-20 raj.khem Respect CMAKE_INSTALL_LIBDIR in installed CMake files
2019-10-30 dneto Travis-CI: macOS: Run brew update first
2019-10-30 dneto Add namespace to make_unique to avoid potential collisions

Roll external/googletest/ f2fb48c3b..011959aaf (233 commits)

https://github.com/google/googletest/compare/f2fb48c3b3d7...011959aafddc

$ git log f2fb48c3b..011959aaf --date=short --no-merges --format='%ad %ae %s'
2020-05-13 absl-team Googletest export
2020-05-13 absl-team Googletest export
2020-05-11 absl-team Googletest export
2020-05-08 martin Remove an explicit include of debugapi.h
2020-05-08 martin Revert "Googletest export"
2020-05-07 absl-team Googletest export
2020-05-04 absl-team Googletest export
2020-04-30 absl-team Googletest export
2020-04-28 absl-team Googletest export
2020-04-27 absl-team Googletest export
2020-04-24 absl-team Googletest export
2020-04-23 absl-team Googletest export
2020-04-20 absl-team Googletest export
2020-04-20 absl-team Googletest export
2020-04-17 absl-team Googletest export
2020-05-01 56075233+keshavgbpecdelhi Removed a typo in README.md
2020-03-28 arthur.j.odwyer Add -Wdeprecated to the build configuration.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Fix a -Wdeprecated warning.
2020-04-16 arthur.j.odwyer Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.
2020-04-19 igor.n.nazarenko Enable protobuf printing for open-source proto messages.
2020-04-16 arthur.j.odwyer VariadicMatcher needs a non-defaulted move constructor for compile-time performance.
2020-04-10 absl-team Googletest export
2020-04-12 jbohl fix signed/unsigned comparison issue (on OpenBSD)
2020-04-09 malcolm.parsons Remove redundant .c_str()
2020-04-06 mail gtest-unittest-api_test - fix warning in clang build
2020-04-01 absl-team Googletest export
2020-04-05 jijyunneng Remove duplicate codes existed in get-nprocessors.sh
2020-03-30 absl-team Googletest export
2020-03-29 verdoialaurent Fix --gtest_print_time coloring
2020-03-28 arthur.j.odwyer Replace the last instance of `throw()` with `noexcept`. NFC.
2020-03-28 arthur.j.odwyer Fix a typo in .travis.yml
2020-03-23 absl-team Googletest export
2020-03-24 krystian.kuzniarek remove chapters on Autotools, Meson and plain Makefiles
2020-03-24 krystian.kuzniarek remove dead code in googletest-output-test
2020-03-24 pkryger Swap settimer and sigaction calls to avoid SIGPROF
2020-03-21 ngompa13 Ensure that gtest/gmock pkgconfig requirements specify version
2020-03-20 absl-team Googletest export
2020-03-18 calum.robinson Add GTEST_BRIEF option
2019-07-11 adam.f.badura Add support for std::function in MockFunction (#2277)
2019-12-26 adam.f.badura Add tests for MockFunction deduction (#2277)
2020-03-17 absl-team Googletest export
2020-03-16 dmauro Googletest export
2020-03-13 absl-team Googletest export
2020-03-06 absl-team Googletest export
2020-03-03 absl-team Googletest export
2020-03-03 absl-team Googletest export
2020-03-11 romain.geissler Make sure IsATTY does not clobber errno.
2020-02-27 absl-team Googletest export
(...)
2019-10-16 absl-team Googletest export
2019-10-11 joshdcannon Avoid recursive macros
2019-10-09 robert Add more override keywords
2019-10-07 chrisjohnsonmail Update to distinguish prelease purpose of this fork.
2019-10-11 joshdcannon Removing extraneous parenthesis
2019-10-11 joshdcannon Evaluate and cat NARG in different macros
2019-08-29 chrisjohnsonmail Add ESP8266 configs to PlatformIO build
2019-08-28 chrisjohnsonmail feat: Add support for ESP8266 platform
2019-10-11 joshdcannon Removing extraneous test
2019-10-11 joshdcannon Replace compile-test with preprocessor test
2019-10-11 joshdcannon Fix preprocessor tests
2019-10-11 joshdcannon Add a compile test
2019-10-11 joshdcannon Workaround MSVC VA_ARGS weirdness
2019-10-11 misterg Googletest export
2019-10-10 absl-team Googletest export
2019-10-10 absl-team Googletest export
2019-10-11 krystian.kuzniarek clean-up broken paths for PlatformIO
2019-10-10 chrisjohnsonmail chore:  update version
2019-10-10 joshdcannon Made noexcept condition more exciting
2019-10-09 absl-team Googletest export
2019-10-09 zeb Mention Cornichon as a related open source project
2019-10-07 joshdcannon Use declval in noexcept expression
2019-10-07 joshdcannon Switch to free function to avoid GCC bug
2019-10-07 joshdcannon Avoid comma operator
2019-10-07 joshdcannon Fix spacing
2019-10-07 joshdcannon Use the verbatim noexcept spec in MOCKED_METHOD
2019-10-07 joshdcannon Use FormatFileLocation for streaming file and line
2019-10-05 soap Add documentation for pkg-config in cross-compilation settings
2019-10-05 soap Revert "Use pcfiledir for prefix in pkgconfig file"
2019-10-03 misterg Googletest export
2019-10-03 absl-team Googletest export
2019-10-02 absl-team Googletest export
2019-09-29 misterg Googletest export
2019-10-01 ant35rookie Fix typo in documents
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
2019-08-16 pbarker Add many missing override keywords
2019-09-05 krystian.kuzniarek remove GTEST_ARRAY_SIZE_
2019-08-22 krystian.kuzniarek mention the existing support for wide strings in string matchers
2019-09-16 krystian.kuzniarek square away the stuff that hasn't been merged in a manual review
2019-09-07 krystian.kuzniarek square away the stuff that hasn't been merged in a manual review
2019-08-22 krystian.kuzniarek change usings
2019-09-10 krystian.kuzniarek change includes in gtest-port.h
2019-09-10 krystian.kuzniarek remove GTEST_HAS_STD_STRING
2019-09-10 krystian.kuzniarek remove a dead function

Roll external/re2/ 5bd613749..aecba1111 (88 commits)

https://github.com/google/re2/compare/5bd613749fd5...aecba11114cf

$ git log 5bd613749..aecba1111 --date=short --no-merges --format='%ad %ae %s'
2020-05-27 junyer Refuse to rewrite when MaxSubmatch() is too large.
2020-05-22 junyer Use CMAKE_CXX_STANDARD now that we can.
2020-05-22 junyer Make "front and back" prefix accel work with MSVC.
2020-05-22 junyer Rename to Regexp::RequiredPrefixForAccel().
2020-05-22 junyer Add a basic test for prefix accel.
2020-05-20 junyer Implement "front and back" prefix accel.
2020-05-19 junyer Generalise from "first byte" to "prefix accel".
2020-05-19 junyer have_first_byte now implies run_forward.
2020-05-19 junyer Tidy up the code around the memchr(3) calls.
2020-05-17 junyer Remove a pointer chase from Regexp::Walker<>.
2020-05-17 junyer Tidy up the code for NFA threads a bit more.
2020-05-17 junyer Argh. I overlooked the constructor and destructor.
2020-05-17 junyer Undo use of PODArray<> for NFA threads.
2020-05-17 junyer Use PODArray<> in a few more places.
2020-05-16 junyer Separate build/install for libre2.a and libre2.so.
2020-05-16 junyer Refine a preprocessor check for MSVC.
2020-05-15 junyer Compute first byte for forward Progs only.
2020-05-11 junyer Don't dereference params->start unconditionally.
2020-05-11 junyer Compute first_byte using the Regexp, not the Prog.
2020-05-11 junyer Implement Regexp::RequiredPrefixUnanchored().
2020-05-11 junyer Refactor Regexp::RequiredPrefix().
2020-05-10 junyer Lower the memory budget in TestCompile.InsufficientMemory.
2020-05-05 junyer Remove first_byte from StartInfo and simplify accordingly.
2020-05-02 junyer `^' is a caret, not a carat.
2020-04-23 junyer Compute first_byte_ eagerly.
2020-04-23 junyer Remove unused flags_ member from Prog class.
2020-04-23 junyer Replace some uses of "LL" and "ULL" suffixes.
2020-04-21 junyer Explain the need for double backslashes.
2020-04-20 junyer Remove memrchr() and the logic that calls it.
2020-04-19 junyer Use 64-bit integers for the BitState bitmap.
2020-04-09 junyer Remove deprecated APIs. Bump SONAME accordingly.
2020-04-06 junyer Go back to using __builtin_ctzll(). Sigh.
2020-04-05 junyer Return the fanout histogram in a vector, not a map.
2020-04-05 junyer Optimise fanout bucketing.
2020-04-05 junyer Add Clang 10 to the Travis CI matrix.
2020-03-27 junyer Aiieee. Add a missing underscore.
2020-03-27 junyer Include the pattern length in "DFA out of memory" errors.
2020-03-15 junyer Update Unicode data to 13.0.0.
2020-03-12 junyer SRWLOCK requires Windows Vista or Windows Server 2008 at minimum.
2020-03-04 donatas.saulys Using slim RW lock on windows
2020-03-02 junyer Set SONAME to 6.
2020-03-01 junyer Bump SONAME to reflect the ABI break.
2020-02-28 junyer Add macOS and Xcode jobs to the Travis CI matrix.
2020-02-26 junyer Don't break the RE2 object when compiling the reverse Prog fails.
2020-02-26 junyer Revert "Refuse to rewrite when MaxSubmatch() is too large."
2020-02-25 junyer Fall back to NFA execution when compiling the reverse Prog failed.
2020-02-25 junyer Refuse to rewrite when MaxSubmatch() is too large.
2020-02-20 junyer Tweak the comment on RE2::QuoteMeta().
2020-02-17 junyer Move DeBruijnString() alongside StringGenerator.
2020-02-14 junyer Fix the check for Apple platforms. Mea culpa.
2020-02-14 junyer Provide hooks::context iff thread_local is supported.
2020-02-14 junyer Update doc/syntax.html.
2020-02-13 junyer MSVC also doesn't like casting lambdas with `+'. Sigh.
2020-02-13 junyer Only the latest MSVC allows designated initalisers.
2020-02-13 junyer Provide instrumentation points called "hooks".
2020-02-11 junyer Tidy up some GCC-only guards.
2020-02-04 junyer Tidy up the SWIG guard around LazyRE2.
2020-02-03 junyer Tweak some of the comments about FilteredRE2.
2020-01-31 junyer Avoid using the forward DFA in "ANCHOR_END" cases.
2020-01-29 junyer Make the fuzzer use FuzzedDataProvider.
2020-01-12 junyer Tidy up a test.
2020-01-07 junyer Prevent ShortVisit() from crashing fuzzers.
2020-01-05 junyer Fix a comment.
2019-12-29 junyer Make DFA use hints.
2019-12-13 junyer std::is_pod<> was deprecated in C++20.
2019-12-09 junyer Simplify the bytecode for the 80-10FFFF rune range.
2019-11-25 junyer Fix nullptr-with-nonzero-offset bugs found by UBSan.
2019-11-25 junyer Check if empty() instead of comparing size() with 0.
2019-11-10 junyer Fix a latent bug in Regexp::Walker<T>::Reset().
2019-10-29 junyer Tweak some printed debugging for style.
2019-10-29 junyer Address the MSVC warnings that crept in recently.
2019-10-29 junyer Simplify parse_double_float() in util/pcre.cc.
2019-10-13 junyer Fix the regexp_benchmark build with GNU make.
2019-10-11 junyer Oops, wrap a couple of lines.
2019-10-11 junyer Read flags using the GetFlag() style.
2019-10-11 junyer Make flags use the DEFINE_FLAG() style.
2019-10-11 junyer Remove a condition from exhaustive1_test.cc that is no longer needed.
2019-10-11 junyer Move util/flags.h into the testing target.
2019-10-11 junyer Don't declare testing::TempDir() in dump.cc itself.
2019-10-11 junyer Split out the fake testing::MallocCounter into its own file.
2019-10-11 junyer Remove the fake test_tmpdir flag in favour of testing::TempDir().
2019-10-10 junyer Remove the comment on NumCPUs().
2019-10-10 junyer Call .range(0) explicitly rather than just .range().
2019-10-10 junyer Move NumCPUs() into regexp_benchmark.cc.
2019-10-10 junyer Migrate to the new benchmark API.
2019-10-10 junyer Implement the new benchmark API as a layer over the old benchmark API.
2019-10-09 junyer Tidy up the ersatz benchmark library.
2019-10-07 junyer Move pod_array.h and sparse_{array,set}.h from util/ to re2/.

Roll external/spirv-headers/ f8bf11a02..ac638f181 (7 commits)

https://github.com/KhronosGroup/SPIRV-Headers/compare/f8bf11a0253a...ac638f181542

$ git log f8bf11a02..ac638f181 --date=short --no-merges --format='%ad %ae %s'
2020-05-20 dneto Update example to use unified1 headers
2020-04-24 cepheus Update headers to SPIR-V 1.5 Revision 3
2020-04-24 cepheus Add a bunch of missing "version" : "None" for ray tracing.
2020-04-24 cepheus Rebuild the headers with the fixed grammar file.
2020-04-24 cepheus Add missing "version" : "None" for ShaderCallKHR
2020-04-24 cepheus Grammar: The ray-tracing updates were not done in numerical ordering.
2020-04-13 cepheus Discuss generator magic number reservations.

Created with:
  roll-dep external/effcee external/googletest external/re2 external/spirv-headers
2020-05-27 15:57:28 -04:00
Steven Perron 6d9e8029a5 Start SPIRV-Tools v2020.4 2020-05-27 13:45:36 -04:00
Steven Perron 04cdd97f20 Finalize SPIRV-Tools v2020.3 2020-05-27 13:43:54 -04:00
Steven Perron 413b61ed46 Update CHANGES 2020-05-27 10:30:52 -04:00
André Perez f1414ebd5b spirv-fuzz: Support bit width argument for int and float types (#3378)
This change add support to pass bit width of integer and float types
as argument when creating floating-point and integer types and
constants.
2020-05-26 15:59:11 +01:00
André Perez 617e94f9d1 Fix function use (#3372)
This PR fixes a function use of a Instruction object.
2020-05-26 12:28:02 +01:00
Jaebaek Seo 5dbc2bb638 spirv-val: allow DebugInfoNone for DebugTypeComposite.Size (#3374) 2020-05-25 10:02:39 -04:00
Ricardo Garcia 71b41a5a83 Add validation support for ImageGatherBiasLodAMD (#3363)
ImageGatherBiasLodAMD makes it possible to use the Bias and Lod image
operands with OpImageGather and OpImageSparseGather. This commit makes
sure the validator checks for that capability before reporting errors
and adds a few positive tests.
2020-05-25 09:41:34 -04:00
Anastasia Stulova 901cfbc017 Fix validation failure on OpDecorationGroup (#3365) 2020-05-21 13:15:41 -04:00
greg-lunarg 25f4d6a203 Remove deprecated interfaces from instrument passes (#3361) 2020-05-21 13:10:42 -04:00
Jaebaek Seo e4c4918e09 Preserve debug info in inline pass (#3349)
Handles the OpenCL100Debug extension in inlining.  It preserves the information that is available while also adding the debug inlined at for all of the inlining that it does.
2020-05-21 13:09:43 -04:00
Diego Novillo a969eb20ba Reject folding comparisons with unfoldable types. (#3370)
Reject folding comparisons with unfoldable types.

Fixes #3343 

When CCP is evaluating an instruction, it was trying to fold a
comparison with 64 bit integers.  This was causing a fold failure later
since the folder still cannot deal with 64 bit integers.
2020-05-21 12:58:08 -04:00
Paul Thomson 87de47f98f Improve build instructions for fuzzer (#3364) 2020-05-21 12:56:26 +01:00
Steven Perron 95c3089f5e Add unrolling to performance passes (#3082)
Unroll loops that are marked as unroll when doing -O.  Add cleanup
optimizations after unrolling.

Fixes #3067
2020-05-20 15:43:13 -04:00
Jaebaek Seo 021215264d Handle OpConstantNull in ssa-rewrite (#3362)
ssa-rewrite fails in `MemPass::GetPtr()` when the SPIR-V code contains
`OpLoad` for the result id of `OpConstantNull` because of the out of
index access for an operand to get the base address. This commit fixes
it.

Fixes #3344
2020-05-20 12:00:51 -04:00
Ryan Harrison 8d4505209a Add in a bunch of missed files to the BUILD.gn (#3360)
Fixes #3357
2020-05-19 15:17:58 -04:00
Ryan Harrison 1c98971ef7 Remove stale entries from BUILD.gn (#3358)
Fixes #3357
2020-05-19 13:25:45 -04:00
Vladimir Davidovich 394838b3e1 allow cross compiling for Windows Store, UWP, etc. (#3330)
for more info see https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-windows-store
2020-05-19 11:43:35 -04:00
Vasyl Teliman 9ad9c803ea spirv-fuzz: Remove FuzzerPassAddUsefulConstructs (#3341)
Fixes #3318.
2020-05-19 15:54:55 +01:00
Vasyl Teliman 661e6280e4 Add support for StorageBuffer (#3348)
Fixes #3347.
2020-05-19 15:54:05 +01:00
Gustavo Alvarez 8ad8d3aa0c Prevent Effcee install his things when build spirv-tools with testing enabled (#3256) 2020-05-19 10:29:31 -04:00
Steven Perron 611d0e5946 Don't register edges twice in merge return (#3350)
Fixes #3267
2020-05-19 10:28:04 -04:00
Steven Perron c49340e11f Revert "Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)" (#3345)
This reverts commit 8abc9f26d5.
2020-05-14 10:55:47 -04:00
Alastair Donaldson f4fb0ea931 spirv-reduce: Remove unused struct members (#3329)
Adds a reduction pass to remove unused members from structs.
2020-05-14 15:36:38 +01:00
André Perez 4bb1214b7e Add adjust branch weights transformation (#3336)
In this PR, the classes that represent the adjust branch weights
transformation and fuzzer pass were implemented. This transformation
adjusts the branch weights of a OpBranchConditional instruction.
2020-05-14 11:38:34 +01:00
Steven Perron 8abc9f26d5 Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)
This reverts commit 28d0978024.
2020-05-13 23:44:19 -04:00
Jaebaek Seo 28d0978024 [spirv-opt] refactor inlining pass (#3328)
- No longer inline functions with early exits. Merge return can modify them so they can be inlined.
- Otherwise no functional change, should be just refactoring.
2020-05-13 23:17:19 -04:00
Alastair Donaldson 497414ff84 spirv-reduce: Remove unused uniforms and similar (#3321)
Extends the pass for removing unused instructions so that it can
remove global declarations (such as types and variables) that are only
used by decorations with which they are intimately connected, such as
descriptor set and binding decorations.
2020-05-13 22:08:40 +01:00
Alastair Donaldson 6140cf751d spirv-fuzz: Fix to fact manager (#3339)
Reworks the way uniforms with known constants are queried to avoid
unintended side effects to the constant manager.

Fixes #3338.
2020-05-13 22:04:52 +01:00
Alastair Donaldson 49b73e9c2d spirv-fuzz: Get rid of unnecessary template method (#3340)
A template method turned out not to be necessary.
2020-05-13 22:04:24 +01:00
Steven Perron 2f8e76ab3e Do merge return if the return is not at the end of the function. (#3337)
* Do merge return if the return is not at the end of the function.

We will remove the code in inlining to handle a return in the middle of
a function.  To inline those functions, we need to run merge return to
move the return to the end of the function.
2020-05-12 11:56:16 -04:00
Jaebaek Seo 93d02bf0c7 Preserve debug info for wrap-opkill (#3331)
Preserve debug info for wrap-opkill
2020-05-06 12:57:57 -04:00
Jeff Bolz db8ab2fa4f Validate ShaderCallKHR memory scope (#3332) 2020-05-05 13:08:28 -04:00
Alastair Donaldson a1bc82f655 spirv-fuzz: Do not allow adding stores to read-only pointers (#3316)
Re-uses IsReadOnlyPointer functionality for the optimizer to make the check
that avoids storing through read-only pointers more thorough.
2020-05-01 02:50:44 +01:00
Paul Thomson 2a9ebac155 reduce: increase default step limit (#3327) 2020-04-30 22:48:21 +01:00
Alastair Donaldson fe26927703 Generalize IsReadOnlyVariable() to apply to pointers (#3325)
Generalizes the IsReadOnlyVariable() method, and related methods, so
that they can be used to ask whether pointer result ids are read-only.

Fixes #3324.
2020-04-30 22:47:20 +01:00
Steven Perron 2d1b78a54b Delete nullptr in function bb list immedietly (#3326)
When moving blocks around, we ended up with a nullptr for a basic block,
and it was left in the list for a little bit.  However, in that time, it
would end up being dereferenced while traversing the function.

To fix this, we delete it right away.  This was found in an asan build
that runs our current tests.  No new tests are needed, but I did add
extra check asan checks for our asan bot.
2020-04-28 21:54:08 -04:00
Jaebaek Seo 32efad173f Set DebugScope for termination instructions (#3323)
Many high-level languages like HLSL and GLSL generate termination
instructions such as return and branch from the actual part of the
high-level language code like return and if statements. This commit lets
IrLoader set `DebugScope` for termination instructions.
2020-04-28 09:30:44 -04:00
Alastair Donaldson 54cf265163 spirv-fuzz: Do not outline regions that end with a loop header (#3312)
The outliner would outline regions ending with a loop header, making
the block containing the call to the outlined function serve as the
loop header.  This, however, is incorrect in general, since the whole
outlined function -- rather than just the exit block for the region --
would end up getting called every time the loop would iterate.

This change restricts the outliner so that the last block in a region
cannot be a loop header.
2020-04-28 13:32:06 +01:00
Ben Clayton 85bf295b17 vscode: Handle '|' chains on BitEnum / ValueEnum (#3309)
* vscode: Regenerate schema with new opcodes.

* vscode: Handle '|' chains on BitEnum / ValueEnum

These were highlighting as errors.
2020-04-27 16:14:48 -04:00