Move tint::transform::Robustness to a santizier transform

There's no good reason for this to be public.
Move it into the writers, and expose a 'disable_robustness' option to
turn it off. This can be expanded to hold more fine-grain control in the
future.

Change-Id: I6ea6e54a27b2ae0fbcba5fdf45539063045cc15a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/122203
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.spvasm b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.spvasm
index 5df8f97..3bbb8ba 100644
--- a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.spvasm
+++ b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -16,8 +16,6 @@
                OpName %tint_mod "tint_mod"
                OpName %lhs "lhs"
                OpName %rhs "rhs"
-               OpName %tint_return_flag "tint_return_flag"
-               OpName %tint_return_value "tint_return_value"
                OpName %foo "foo"
                OpDecorate %v_block Block
                OpMemberDecorate %v_block 0 Offset 0
@@ -32,18 +30,14 @@
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
          %10 = OpTypeFunction %int %int %int
+         %16 = OpConstantNull %int
        %bool = OpTypeBool
-%_ptr_Function_bool = OpTypePointer Function %bool
-         %18 = OpConstantNull %bool
-%_ptr_Function_int = OpTypePointer Function %int
-         %21 = OpConstantNull %int
 %int_n2147483648 = OpConstant %int -2147483648
      %int_n1 = OpConstant %int -1
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
 %uint_2147483648 = OpConstant %uint 2147483648
-         %37 = OpConstantNull %uint
-       %true = OpConstantTrue %bool
+         %32 = OpConstantNull %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_2 = OpConstant %int 2
@@ -55,42 +49,35 @@
         %lhs = OpFunctionParameter %int
         %rhs = OpFunctionParameter %int
          %14 = OpLabel
-%tint_return_flag = OpVariable %_ptr_Function_bool Function %18
-%tint_return_value = OpVariable %_ptr_Function_int Function %21
-         %23 = OpIEqual %bool %rhs %21
-         %25 = OpIEqual %bool %lhs %int_n2147483648
-         %27 = OpIEqual %bool %rhs %int_n1
-         %28 = OpLogicalAnd %bool %25 %27
-         %29 = OpLogicalOr %bool %23 %28
-         %22 = OpSelect %int %29 %int_1 %rhs
-         %34 = OpBitwiseOr %int %lhs %22
-         %32 = OpBitcast %uint %34
-         %36 = OpBitwiseAnd %uint %32 %uint_2147483648
-         %38 = OpINotEqual %bool %36 %37
-               OpSelectionMerge %39 None
-               OpBranchConditional %38 %40 %41
-         %40 = OpLabel
-               OpStore %tint_return_flag %true
-         %43 = OpSDiv %int %lhs %22
-         %44 = OpIMul %int %43 %22
-         %45 = OpISub %int %lhs %44
-               OpStore %tint_return_value %45
-               OpBranch %39
-         %41 = OpLabel
-               OpStore %tint_return_flag %true
-         %46 = OpSRem %int %lhs %22
-               OpStore %tint_return_value %46
-               OpBranch %39
-         %39 = OpLabel
-         %47 = OpLoad %int %tint_return_value
-               OpReturnValue %47
+         %17 = OpIEqual %bool %rhs %16
+         %20 = OpIEqual %bool %lhs %int_n2147483648
+         %22 = OpIEqual %bool %rhs %int_n1
+         %23 = OpLogicalAnd %bool %20 %22
+         %24 = OpLogicalOr %bool %17 %23
+         %15 = OpSelect %int %24 %int_1 %rhs
+         %29 = OpBitwiseOr %int %lhs %15
+         %27 = OpBitcast %uint %29
+         %31 = OpBitwiseAnd %uint %27 %uint_2147483648
+         %33 = OpINotEqual %bool %31 %32
+               OpSelectionMerge %34 None
+               OpBranchConditional %33 %35 %36
+         %35 = OpLabel
+         %37 = OpSDiv %int %lhs %15
+         %38 = OpIMul %int %37 %15
+         %39 = OpISub %int %lhs %38
+               OpReturnValue %39
+         %36 = OpLabel
+         %40 = OpSRem %int %lhs %15
+               OpReturnValue %40
+         %34 = OpLabel
+               OpReturnValue %16
                OpFunctionEnd
         %foo = OpFunction %void None %6
-         %49 = OpLabel
-         %53 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 %uint_0
-         %54 = OpLoad %int %53
-         %50 = OpFunctionCall %int %tint_mod %54 %int_2
-         %56 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 %uint_0
-               OpStore %56 %50
+         %42 = OpLabel
+         %45 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 %uint_0
+         %47 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 %uint_0
+         %48 = OpLoad %int %47
+         %46 = OpFunctionCall %int %tint_mod %48 %int_2
+               OpStore %45 %46
                OpReturn
                OpFunctionEnd