SPIRV-Tools/test/val
Steven Perron e935dac9ef
Make pointers to isomorphic type interchangeable with option. (#2570)
* Make pointers to logically matching types interchangeable with option.

DXC will be generating code where the function parameters will be a more
generic type that the actual parameter.  They should be logically
matching and the decorations of the actual parameter must be a superset
of the decorations of the formal parameter.

We want to accept this code with an options so that spirv-opt can then
inline and fix the type mismatch.  We will accept this under a new
options `--before-hlsl-legalization`.

The new option will also imply `relax-logical-pointer` so that HLSL
frontends will need to use just the one more generic option.

Moved the |LogicallyMatches| to the validation state to make it
available in more places.  Also added a parameter to have it check the
decorations.  I did not do a separate function for the decorations
because checking the decorations involves making sure the types
logically match anyway.

Fixes #2535
2019-05-13 13:48:17 -04:00
..
CMakeLists.txt Validate variable pointer related function call rules (#2270) 2019-02-06 14:10:40 -05:00
pch_test_val.cpp Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
pch_test_val.h Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
val_adjacency_test.cpp [val] Fixup id name output (#2158) 2018-12-03 17:01:30 -05:00
val_arithmetics_test.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
val_atomics_test.cpp Use last version (#2578) 2019-05-10 11:02:01 -04:00
val_barriers_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_bitwise_test.cpp Add validation for execution modes 2018-10-02 10:22:23 -04:00
val_builtins_test.cpp Convert deprecated GoogleTest fixture to the new version (#2357) 2019-02-05 10:33:55 -05:00
val_capability_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_cfg_test.cpp Remove unreachable block validation (#2525) 2019-04-17 18:21:19 -04:00
val_code_generator.cpp Move CodeGenerator to be accessible by other validation tests (#2343) 2019-01-29 10:27:11 -05:00
val_code_generator.h Move CodeGenerator to be accessible by other validation tests (#2343) 2019-01-29 10:27:11 -05:00
val_composites_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_constants_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_conversion_test.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
val_data_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_decoration_test.cpp Use last version (#2578) 2019-05-10 11:02:01 -04:00
val_derivatives_test.cpp [val] Fixup id name output (#2158) 2018-12-03 17:01:30 -05:00
val_explicit_reserved_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
val_ext_inst_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_extensions_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_fixtures.h spvtest::Validate::CompileFailure: Don't leak the diagnostic (#2564) 2019-05-07 22:01:06 -04:00
val_function_test.cpp Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
val_id_test.cpp Validate that OpUnreacahble is not statically reachable (#2473) 2019-03-29 10:49:37 -04:00
val_image_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_interfaces_test.cpp Update priv-to-local for SPIR-V 1.4 (#2567) 2019-05-08 12:38:49 -04:00
val_layout_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_limits_test.cpp [val] Fixup id name output (#2158) 2018-12-03 17:01:30 -05:00
val_literals_test.cpp Validate sign of int types. (#2549) 2019-05-06 13:05:31 -04:00
val_logicals_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_memory_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_modes_test.cpp Add validation specific to OpExecutionModeId (#2536) 2019-05-01 13:29:39 -04:00
val_non_uniform_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_primitives_test.cpp Add validation for execution modes 2018-10-02 10:22:23 -04:00
val_ssa_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_state_test.cpp Change handling of unknown extentions in validtor. (#1951) 2018-10-03 15:59:40 -04:00
val_storage_test.cpp Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
val_type_unique_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
val_validation_state_test.cpp Validate that OpUnreacahble is not statically reachable (#2473) 2019-03-29 10:49:37 -04:00
val_version_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_webgpu_test.cpp Validate that SPIR-V binary is encoded as little endian for WebGPU (#2523) 2019-04-17 12:44:54 -04:00