SPIRV-Tools/source/val
Kévin Petit 11516c0b9a Validate storage class OpenCL environment rules for atomics (#2750)
This change refactors all storage class validation for atomics
to reflect the similar refactoring in the specification.

It is currently not possible to write a test for the check
rejecting Generic in an OpenCL 1.2 environment as the required
GenericPointer capability isn't allowed there. I've decided
to keep the check nonetheless to guard against the capability
becoming available without the rules for atomics being updated.

The ID changes in existing tests aren't ideal but introducing
names drags in a substantial refactoring of this file.

Contributes to #2595.

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2019-07-22 08:38:42 -04:00
..
basic_block.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
basic_block.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
construct.cpp Allows breaks selection breaks to switches (#2605) 2019-05-21 22:49:37 -07:00
construct.h Allows breaks selection breaks to switches (#2605) 2019-05-21 22:49:37 -07:00
decoration.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function.cpp Add validation for SPV_EXT_fragment_shader_interlock (#2650) 2019-06-03 10:55:07 -04:00
function.h Add validation for SPV_EXT_fragment_shader_interlock (#2650) 2019-06-03 10:55:07 -04:00
instruction.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
validate_adjacency.cpp Add passes to propagate and eliminate redundant line instructions (#2027). (#2039) 2018-11-15 14:06:17 -05:00
validate_annotation.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_arithmetics.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
validate_atomics.cpp Validate storage class OpenCL environment rules for atomics (#2750) 2019-07-22 08:38:42 -04:00
validate_barriers.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_bitwise.cpp Update diag() usage in validate_bitwise. (#1757) 2018-08-01 09:19:37 -04:00
validate_builtins.cpp Add validation for Subgroup builtins (#2637) 2019-06-13 08:47:05 -04:00
validate_capability.cpp Allow Float16/Int8 for Vulkan 1.0 (#2153) 2018-12-03 12:50:12 -05:00
validate_cfg.cpp Disallow merge targeting block with OpLoopMerge (#2610) 2019-05-21 23:02:53 -07:00
validate_composites.cpp Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00
validate_constants.cpp Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00
validate_conversion.cpp Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00
validate_datarules.cpp Check forward reference in OpTypeArray. (#2307) 2019-01-21 12:10:25 -05:00
validate_debug.cpp Validate that debugging instructions are not present for WebGPU (#2089) 2018-11-20 16:12:28 -05:00
validate_decorations.cpp Validate that in OpenGL env block variables have Binding (#2685) 2019-07-02 08:11:20 -04:00
validate_derivatives.cpp Allow LOD ops in compute shaders with derivative group execution modes (#2752) 2019-07-22 08:37:44 -04:00
validate_execution_limitations.cpp Add validation for SPV_EXT_fragment_shader_interlock (#2650) 2019-06-03 10:55:07 -04:00
validate_extensions.cpp Update vloadn and vstoren validation to match the OpenCL Extended Instruction Set Specification (#2599) 2019-05-22 08:09:50 -04:00
validate_function.cpp Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
validate_id.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
validate_image.cpp Allow LOD ops in compute shaders with derivative group execution modes (#2752) 2019-07-22 08:37:44 -04:00
validate_instruction.cpp Validate OpenCL memory and addressing model environment rules (#2589) 2019-05-17 08:25:20 -04:00
validate_interfaces.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_layout.cpp Update diag() calls in validate_layout. (#1770) 2018-08-01 12:01:35 -04:00
validate_literals.cpp Update diag() calls in validate_literals. (#1771) 2018-08-01 12:41:46 -04:00
validate_logicals.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_memory_semantics.cpp Validate Volatile memory semantics bit (#2672) 2019-06-17 13:35:40 -04:00
validate_memory_semantics.h Merge two implementations of ValidateMemorySemantics (#2175) 2018-12-06 14:38:15 -05:00
validate_memory.cpp Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00
validate_misc.cpp Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
validate_mode_setting.cpp Add validation for SPV_EXT_fragment_shader_interlock (#2650) 2019-06-03 10:55:07 -04:00
validate_non_uniform.cpp Merge two implementations of ValidateExecutionScope (#2131) 2018-11-29 13:48:42 -05:00
validate_primitives.cpp Refactor where opcodes are validated 2018-08-07 10:29:30 -04:00
validate_scopes.cpp Update execution scope rules for WebGPU (#2730) 2019-07-11 14:37:36 -04:00
validate_scopes.h Merging two ValidateMemoryScope implementations (#2132) 2018-11-29 14:51:17 -05:00
validate_small_type_uses.cpp Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
validate_type.cpp For Vulkan, disallow structures containing opaque types (#2546) 2019-07-16 16:16:19 -04:00
validate.cpp Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
validate.h Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
validation_state.cpp Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00
validation_state.h Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 2019-07-08 14:10:13 -04:00