mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-23 04:00:05 +00:00
e70b009b0f
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
96 lines
2.6 KiB
CMake
96 lines
2.6 KiB
CMake
# Copyright (c) 2016 The Khronos Group Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set(VAL_TEST_COMMON_SRCS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../test_fixture.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../unit_spirv.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/val_code_generator.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/val_code_generator.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/val_fixtures.h
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET val_abcde
|
|
SRCS
|
|
val_adjacency_test.cpp
|
|
val_arithmetics_test.cpp
|
|
val_atomics_test.cpp
|
|
val_barriers_test.cpp
|
|
val_bitwise_test.cpp
|
|
val_builtins_test.cpp
|
|
val_cfg_test.cpp
|
|
val_composites_test.cpp
|
|
val_constants_test.cpp
|
|
val_conversion_test.cpp
|
|
val_data_test.cpp
|
|
val_decoration_test.cpp
|
|
val_derivatives_test.cpp
|
|
val_entry_point.cpp
|
|
val_explicit_reserved_test.cpp
|
|
val_extensions_test.cpp
|
|
val_ext_inst_test.cpp
|
|
${VAL_TEST_COMMON_SRCS}
|
|
LIBS ${SPIRV_TOOLS}
|
|
PCH_FILE pch_test_val
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET val_capability
|
|
SRCS
|
|
val_capability_test.cpp
|
|
LIBS ${SPIRV_TOOLS}
|
|
PCH_FILE pch_test_val
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET val_limits
|
|
SRCS val_limits_test.cpp
|
|
${VAL_TEST_COMMON_SRCS}
|
|
LIBS ${SPIRV_TOOLS}
|
|
PCH_FILE pch_test_val
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET val_fghijklmnop
|
|
SRCS
|
|
val_function_test.cpp
|
|
val_id_test.cpp
|
|
val_image_test.cpp
|
|
val_interfaces_test.cpp
|
|
val_layout_test.cpp
|
|
val_literals_test.cpp
|
|
val_logicals_test.cpp
|
|
val_memory_test.cpp
|
|
val_misc_test.cpp
|
|
val_modes_test.cpp
|
|
val_non_semantic_test.cpp
|
|
val_non_uniform_test.cpp
|
|
val_opencl_test.cpp
|
|
val_primitives_test.cpp
|
|
${VAL_TEST_COMMON_SRCS}
|
|
LIBS ${SPIRV_TOOLS}
|
|
PCH_FILE pch_test_val
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET val_stuvw
|
|
SRCS
|
|
val_small_type_uses_test.cpp
|
|
val_ssa_test.cpp
|
|
val_state_test.cpp
|
|
val_storage_test.cpp
|
|
val_type_unique_test.cpp
|
|
val_validation_state_test.cpp
|
|
val_version_test.cpp
|
|
val_webgpu_test.cpp
|
|
${VAL_TEST_COMMON_SRCS}
|
|
LIBS ${SPIRV_TOOLS}
|
|
PCH_FILE pch_test_val
|
|
)
|