SPIRV-Tools/tools
David Neto e70b009b0f
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
2019-12-18 18:10:29 -05:00
..
as SPIRV-Tools support for SPIR-V 1.5 (#2865) 2019-09-13 14:59:02 -04:00
cfg SPIRV-Tools support for SPIR-V 1.5 (#2865) 2019-09-13 14:59:02 -04:00
dis SPIRV-Tools support for SPIR-V 1.5 (#2865) 2019-09-13 14:59:02 -04:00
emacs Define variable to skip installation 2017-07-04 12:24:44 -04:00
fuzz spirv-fuzz: Improve debugging facilities (#3074) 2019-11-27 18:05:56 +00:00
lesspipe tools/lesspipe: Allow generic shell (#2255) 2018-12-27 15:06:37 -05:00
link Add all accepted target environments to the tools' help texts (#2687) 2019-06-20 09:41:28 -04:00
opt Add support for SPV_KHR_non_semantic_info (#3110) 2019-12-18 18:10:29 -05:00
reduce reduce: improve remove unref instr pass (#2945) 2019-10-08 13:02:34 +01:00
sva Add OpCopyMemory test to SVA. (#2885) 2019-09-24 10:49:39 -04:00
util Fix header include syntax. (#2882) 2019-09-19 09:26:24 -05:00
val SPIRV-Tools support for SPIR-V 1.5 (#2865) 2019-09-13 14:59:02 -04:00
CMakeLists.txt Add spirv-fuzz tool. (#2631) 2019-05-27 15:46:35 +01:00
io.h Close opened file handles. (#2644) 2019-05-31 10:28:33 -04:00