spirv: Use generic transform to process shader IO

The refactored CanonicalizeEntryPointIO transform makes it much easier
to handle SPIR-V style IO as well, and doing this removes a lot of
duplicated code. Remove all of the SPIR-V transform code for shader IO
and vertex point size.

Bug: tint:920
Change-Id: Id1b97517619b4d2fd09b45d5aee848259f3dfa77
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60840
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
index 30fbe9b..8e80a59 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureStore_6cff2e "textureStore_6cff2e"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 NonReadable
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-          %7 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %uint = OpTypeInt 32 0
+         %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,34 +42,33 @@
          %21 = OpConstantNull %v2int
      %v4uint = OpTypeVector %uint 4
          %23 = OpConstantNull %v4uint
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureStore_6cff2e = OpFunction %void None %13
          %16 = OpLabel
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
                OpImageWrite %18 %21 %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %27 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %textureStore_6cff2e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureStore_6cff2e
-         %32 = OpFunctionCall %void %tint_symbol_2 %12
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureStore_6cff2e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureStore_6cff2e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureStore_6cff2e
                OpReturn
                OpFunctionEnd