diff options
author | David Neto <dneto@google.com> | 2019-12-19 02:10:29 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-19 02:10:29 +0300 |
commit | e70b009b0f1e47278d89ed7c9f418010d563eb5a (patch) | |
tree | 5d7020752cf0b31cc77aa695fcde01e2c8a18580 /external | |
parent | 38d7fbaad0a376c777fa5ee95338c2c90e02d416 (diff) |
Add support for SPV_KHR_non_semantic_info (#3110)
Add support for SPV_KHR_non_semantic_info
This entails a couple of changes:
- Allowing unknown OpExtInstImport that begin with the prefix `NonSemantic.`
- Allowing OpExtInst that reference any of those sets to contain unknown
ext inst instruction numbers, and assume the format is always a series of IDs
as guaranteed by the extension.
- Allowing those OpExtInst to appear in the types/variables/constants section.
- Not stripping OpString in the --strip-debug pass, since it may be referenced
by these non-semantic OpExtInsts.
- Stripping them instead in the --strip-reflect pass.
* Add adjacency validation of non-semantic OpExtInst
- We validate and test that OpExtInst cannot appear before or between
OpPhi instructions, or before/between OpFunctionParameter
instructions.
* Change non-semantic extinst type to single value
* Add helper function spvExtInstIsNonSemantic() which will check if the extinst
set is non-semantic or not, either the unknown generic value or any future
recognised non-semantic set.
* Add test of a complex non-semantic extinst
* Use DefUseManager in StripDebugInfoPass to strip some OpStrings
* Any OpString used by a non-semantic instruction cannot be stripped, all others
can so we search for uses to see if each string can be removed.
* We only do this if the non-semantic debug info extension is enabled, otherwise
all strings can be trivially removed.
* Silence -Winconsistent-missing-override in protobufs
Diffstat (limited to 'external')
-rw-r--r-- | external/CMakeLists.txt | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 3190f4b08..8bde13ca1 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -108,6 +108,9 @@ if(SPIRV_BUILD_FUZZER) set(protobuf_BUILD_TESTS OFF CACHE BOOL "Disable protobuf tests") set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "Do not build protobuf static runtime") if (IS_DIRECTORY ${PROTOBUF_DIR}) + if (${CMAKE_CXX_COMPILER_ID} MATCHES Clang) + add_definitions(-Wno-inconsistent-missing-override) + endif() add_subdirectory(${PROTOBUF_DIR} EXCLUDE_FROM_ALL) else() message(FATAL_ERROR |