Add support for SPV_KHR_non_semantic_info#3109
Add support for SPV_KHR_non_semantic_info#3109baldurk wants to merge 6 commits intoKhronosGroup:masterfrom
Conversation
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.
- We validate and test that OpExtInst cannot appear before or between OpPhi instructions, or before/between OpFunctionParameter instructions.
* 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.
* 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.
|
Hey @afd the build failures here seem to be an overrides warning for protobufs code (see below). That's unrelated to this PR. Please take a look. [190/885] Building CXX object external/protobuf/cmake/CMakeFiles/libprotobuf.dir/__/src/google/protobuf/util/internal/default_value_objectwriter.cc.o |
|
Looks like there are some legit endogenous issues. 867/889] Building CXX object test/val/CMakeFiles/test_val_fghijklmnop.dir/val_non_semantic_test.cpp.o |
|
Hm. That raw string issue might be an bad interaction with googletest. I've seen that before. Should be easy for me to fix. |
|
It's also a pretty old GCC. GNU 4.8.5 |
|
Is there anything you want me to fixup on the branch? That raw string could probably be regular literal, I think I deleted the second line I had that prompted it to be a raw literal. |
Not just yet. |
|
This content was merged via #3110 |
No description provided.